【发布时间】:2011-06-05 11:56:24
【问题描述】:
我正在处理文件 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;
}
简单但中肯的帮助将不胜感激。
【问题讨论】:
-
你从哪里得到这个代码?它甚至不应该编译,include 指令有错字,并且布尔值的
strlen也是不合法的。 -
另外,gets() 是危险的,并且已被弃用 for ages now。考虑使用更安全的东西,或者至少退回到
fgets()。 -
不要使用
gets。它不能安全使用。它已从the next language standard 中删除。 -
@Alfred 把书扔掉。看起来真的很糟糕。
-
@Alfred Nobel yes nobal 把那本书扔了。作者懒得更新书了!现代编译器不会编译上面写的和那本书中给出的代码!!