我正在处理文件io函数,有人能解释一下&对于语句2,在下面的代码中,我想在这里输入字符串&然后想把它写在磁盘上。。。。。
#include<stdio.h>
#include<sttring.h>
int main()
{
FILE *fp;
char s[80];
fp=fopen("noname00.cpp","w");
while(strlen(gets(s))>0) /*parenthesis now at correct place*/ /*purpose of this statement */
{
fputs(s,fp);
fputs("n",fp);
}
fclose(fp);
return 0;
}
简单但切中要害的帮助将不胜感激。
哪一个是语句2?char s[80];
?它只是简单地声明和定义一个大小为80的字符数组。
如果您的意思是语句2是while(strlen(gets(s)>0))
,那么我认为它不正确。strlen()接受const char *
作为其参数,但您将其指定为整数:gets(s) > 0
。
此外,千万不要使用gets()
,因为http://c-faq.com/stdio/getsvsfgets.html
另外,获取的副本http://en.wikipedia.org/wiki/The_C_Programming_Language和学习。
该语句的目的是测试是否只有一个"return"来中断循环。否则,用户可以继续输入多行并将多行添加到文件中。如果您真的只想允许一行,则可以删除while{}。