C语言文件读取疑问
编译环境dev-cpp 4.9, windows xp
我按照书编写以下C代码:
int main(int argc, char * argv[])
{
int account ;
char name[30] ;
float balance ;
FILE * cfptr ;
if((cfptr = fopen("F:\\Dev-Cpp\\exer\\aa.txt","w")) == NULL)
{
printf("file could not open!!\n");
}
else
{
printf("enter the account, name, balance\n");
printf("enter EOF to end input\n");
printf("?");
scanf("%d%s%f", &account, name, &balance);
while( !feof(stdin) )
{
fprintf(cfptr, "%d%s%.2f\n", account, name, balance);
printf("?");
scanf("%d%s%f", &account, name, &balance);
}
fclose(cfptr);
}
}
疑问:while(!feof(stdin)) 这个循环怎么样才能正常结束,ctrl+c么??
我写到文件中的数据是:
enter the account, name, balance
enter EOF to end input
?1000 zhangsan 394.33
? 1001 lisi 843.31
? 1002 wangwu 789.34
==============================================================================
我写数据进入文件后,再编写一个读数据代码如下:
int main(int argc, char * argv[])
{
int account ;
char name[30] ;
float balance ;
FILE * cfptr ;
if((cfptr = fopen("F:\\Dev-Cpp\\exer\\aa.txt","r")) == NULL)
{
printf("file could not open!!\n");
}
else
{
printf("%-10s%-13s%s\n", "account", "name", "balance");
fscanf(cfptr, "%d%s%f", &account, name, &balance);
while( !feof(cfptr) )
{
printf("%-10d%-13s%7.2f\n", account, name, balance);
fscanf(cfptr, "%d%s%f", &account, name, &balance);
}
fclose(cfptr);
}
}
执行的时候,好像进入死循环,不停的读取数据,我只有3条数据。请问问题出在哪里了??