请帮忙解释一下以下C语言的问题

void read_file(void)
{
int i;
// clrscr();
printf(" Discrete Event Simulation Illustration\n");
printf(" Single Queue Single Server Simulation \n");
printf(" ======================================\n");
printf("File Name: ");
scanf("%s", file_name);
if ((DFILE = fopen(file_name,"r")) == NULL)
{
printf("Error : Cannot open the input file!\n");
exit(0);
}
i=0;
do {
fscanf(DFILE, "%f %f", DSET1+i, DSET2+i);
i++;
} while(DSET2[i-1] > 0);
printf("Please Key in Ending time: ");
scanf("%f", &STOPT);
}
do循环部分是干什么,还有打开文件对文件位置是有要求吗还是说电脑里存在这个文件就可以,谢谢

函数名: fscanf
功 能: 从一个流中执行格式化输入,fscanf遇到空格和换行时结束,注意空格时也结束。这与fgets有区别,fgets遇到空格不结束。
用 法: int fscanf(FILE *stream, char *format,[argument...]);
int fscanf(文件指针,格式字符串,输入列表);
for example:
FILE *fp;
char a[10];
int b;
double c;
fscanf(fp,"%s%d%lf",a,&b,&c)
返回值:整型,成功读入的参数的个数

看过以上这段你应该明白,fscanf的第一个参数是文件指针,它指向一个文件
然后在这个文件里循环输入数字,电脑里不仅要存有某个文件,还必须把它赋给DFILE
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-20
①do循环是循环读取文件内容 赋值到DSET1和DSET2的数组中
②文件位置取决于"scanf("%s", file_name);"你运行的程序时的输入
如果是和可执行程序在同一个目录,则运行是直接输入文件名
若果不在同一目录,运行是可以输入相对于可执行程序的相对路径或者绝对路径
相似回答