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