fgetc的用法解决思路
fgetc的用法
大家好,我用fgetc读取一个文本文件里的字符,里面只有4个字符为什么会读出5个呢?下面代码和执行截图,请大家给解答一下。
代码
截图
这是执行情况

这是hellow.txt

------解决方案--------------------
用hex模式看看文件
------解决方案--------------------
文本文件由个EOF结束符。所以是5个字符。如果是以字符串读出,这个EOF不会读出。
------解决方案--------------------
改成这样。
------解决方案--------------------
这个问题就像
char a,b;
a=getchar();
b=getchar();
你在程序中输入一个字母k回车这时候
a=k;
b='回车符'
一个道理
大家好,我用fgetc读取一个文本文件里的字符,里面只有4个字符为什么会读出5个呢?下面代码和执行截图,请大家给解答一下。
代码
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
FILE *fp;
fp = fopen("E://文本编辑//文件夹//hellow.txt","r");
if(fp==NULL)exit(0);
char ch[10]={0};
int i=0;
while(!feof(fp))
{
ch[i]=fgetc(fp);
i++;
}
int k = strlen(ch);
printf("%d\n",k);
printf("%s",ch);
printf("%c",ch[k-1]);
printf("%d",ch[k-1]);
printf("%d",EOF);
fclose(fp);
return 0;
}
截图
这是执行情况
这是hellow.txt
------解决方案--------------------
用hex模式看看文件
------解决方案--------------------
文本文件由个EOF结束符。所以是5个字符。如果是以字符串读出,这个EOF不会读出。
------解决方案--------------------
改成这样。
ch[i]=fgetc(fp);
while(!feof(fp))
{
i++;
ch[i]=fgetc(fp);
}
------解决方案--------------------
这个问题就像
char a,b;
a=getchar();
b=getchar();
你在程序中输入一个字母k回车这时候
a=k;
b='回车符'
一个道理