当预期为1时,fgetc返回意外值49

时间:2018-05-03 17:43:35

标签: c stdio fgetc

我在使用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;
} 

文件&#34; a.txt&#34;有一个字符&#34; 1&#34;,但k收到值49。

1 个答案:

答案 0 :(得分:2)

fgetc()的说明:

  

返回内部文件位置指示器

当前指向的字符

您正在阅读角色&#39; 1&#39;然后用

打印它的十进制值
printf("printing k : %d",k);

使用printf使用%c打印字符的值:

printf("printing k : %c",k);

您可以详细了解printf以及如何格式化其输出here