[问题]c的顺序文件处理的问题。

软件和网站开发以及相关技术探讨
回复
头像
leran0222
帖子: 105
注册时间: 2007-05-12 0:13

[问题]c的顺序文件处理的问题。

#1

帖子 leran0222 » 2007-11-30 20:30

程序如下:


#include<stdio.h>

int main(int argc,char*argv[])

{
int account;
char name[30];
float balance;
FILE* cfPtr;

if((cfPtr=fopen("clients.dat","w"))==NULL)
printf("File open error\n");
else
{
printf("Enter a account,name and balance.\n");
printf("Enter EOF marker to end input\n");
printf("?");

scanf("%d%s%f",&account,name,&balance);

while(!feof(stdin))
{
fprintf(cfPtr,"%d\t%s\t%f.2\n",account,name,balance);
printf("?");
scanf("%d%s%f",&account,name,&balance);
}
fclose(cfPtr);
}

return 0;
}


执行的时候可以接收键盘的输入,也创建了clients。dat文件,但是clients。dat文件时空的,数据没有写进去。

哪位大虾指导下,感激不尽。
dbzhang800
帖子: 3182
注册时间: 2006-03-10 15:10
来自: xi'an China
联系:

Re: [问题]c的顺序文件处理的问题。

#2

帖子 dbzhang800 » 2007-11-30 22:41

leran0222 写了:程序如下:


#include<stdio.h>

int main(int argc,char*argv[])

{
int account;
char name[30];
float balance;
FILE* cfPtr;

if((cfPtr=fopen("clients.dat","w"))==NULL)
printf("File open error\n");
else
{
printf("Enter a account,name and balance.\n");
printf("Enter EOF marker to end input\n");
printf("?");

scanf("%d%s%f",&account,name,&balance);

while(!feof(stdin))
{
fprintf(cfPtr,"%d\t%s\t%f.2\n",account,name,balance);
printf("?");
scanf("%d%s%f",&account,name,&balance);
}
fclose(cfPtr);
}

return 0;
}


执行的时候可以接收键盘的输入,也创建了clients。dat文件,但是clients。dat文件时空的,数据没有写进去。

哪位大虾指导下,感激不尽。
为什么要用这种语句while(!feof(stdin))
如果非要这么用的话,结束程序的时候要用 Ctrl+D, 不要用 Ctrl+C
回复