我写了一个小程序,应该逐个字符地读取文件的内容,但是代码的作用是每次字符跳一次,好像每次字符都逃脱了角色,我不明白为什么< / p>
我不知道该怎么办
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, age = 18;
char strind[] = "Himou";
FILE *file = NULL;
file = fopen("test.txt", "r+");
if(file != NULL)
{
do
{
printf("%c", fgetc(file));
}while(fgetc(file) != EOF);
fclose(file);
}
else
{
printf("the file couldn't be open");
}
return 0;
}
该文件存在并且包含“ Hello World !!您的名字是Himou,您的年龄是18岁”,因此我所期望的却是实际结果“ HloWrd!Yu aei io n oraei 8”
答案 0 :(得分:1)
每次角色跳一次,就好像每次逃脱角色
do { printf("%c", fgetc(file)); <<< here you read and print a character }while(fgetc(file) != EOF); << here you read again a character and lost it
是的,因为您需要这样做,请参阅我在上面的代码中添加的注释
我不知道该怎么办
可能您想要这样写所有读取的字符:
int c;
while ((c = fgetc(file)) != EOF)
putchar(c);