int main(void){ char buffer[5] = {0}; int i; FILE *fp = fopen("haha.txt", "r"); if (fp == NULL) { perror("Failed to open file \"mhaha\""); return EXIT_FAILURE; } for (i = 0; i < 5; i++) { int rc = getc(fp); if (rc == EOF) { fputs("An error occurred while reading the file.\n", stderr); return EXIT_FAILURE; } buffer[i] = rc; } fclose(fp); printf("The bytes read were... %x %x %x %x %x\n", buffer[0], buffer[1], buffer[2], buffer[3], buffer[4]); return EXIT_SUCCESS; }
我把八个0我haha.txt文件,当我运行此代码,它总是给我:为什么我的getc()在C中输入0时总是返回30?
这些字节读是... 30 30 30 30 30
有人能告诉我为什么吗?
因为'0'的ASCII码是'十六进制30'。 – AntonH
在'printf'调用中将'%x'更改为'%c'。 – ouah