【发布时间】:2018-05-03 17:43:34
【问题描述】:
我在使用 fgetc 函数从文件中读取值时遇到问题。这是我正在使用的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int k;
FILE* rede = fopen("/home/leocal/Desktop/Poli/2018-1/Numérico/EP1/Redes/1_Stevenson/a.txt", "r");
if (rede == NULL) {
printf("Couldn't open file\n");
return 1;
}
k = fgetc(rede);
if (k!=EOF) {
printf("printing k : %d",k);
}
fclose(rede);
return 0;
}
文件“a.txt”只有一个字符“1”,但k 接收到的值是 49。
【问题讨论】:
-
49是'1'的ascii 代码。使用printf("printing k : %c",k);将其打印为字符 -
当@Eugene-sh 指向
%d将k的值打印为整数(即字符的ascii 值),如果您希望它打印您应该使用的字符%c.. . 还请阅读printf的手册页 -
Leonardo:很好奇,如果“a.txt”只有一个字符“*”,你希望
k有什么值? -
@chux 我希望你有你的毛巾。
-
投票结果很有趣...我想这可能是某种研究的主题...