首页 > 试题广场 >

下面的程序有什么问题? int main (void)

[问答题]
下面的程序有什么问题?
int main (void)
{
int * fp;
int k;
fp = fopen ("gelatin");
for (k = 0; k < 30; k++)
fputs (fp, "Nanette eats gelatin. ");
fclose ("gelatin");
return 0;
}

推荐
因为程序中有文件定义,所以应该有#include <stdio.h>。应该把fp声明为文件指针:FILE *fp;。函数fopen ( )需要一种模式:fopen ("gelatin", "w")或"a"模式。fputs ( )函数中参数的次序应该反过来。为了清楚起见,输出字符串应该具有一个换行符,因为fputs ( )并不自动添加它。fclose ( )函数需要一个文件指针而不是文件名:
fclose (fp);。下面是正确的版本:
#include <stdio.h>
int main (void)
{
FILE * fp;
int k;
fp = fopen ("gelatin", "w");
for (k = 0; k < 30; k++)
fputs ("Nanette eats gelatin.\n", fp);
fclose (fp);
return 0;
}

发表于 2018-03-23 21:46:35 回复(0)