【发布时间】:2014-03-02 08:24:06
【问题描述】:
代码1:-
int main()
{
char str[200];
fgets(str,200,stdin);
printf("%s",str);
return 0;
}
输出:-
ab cd
ab cd
(line feed)
代码2:-
int main()
{
char str[200];
gets(str);
printf("%s",str);
return 0;
}
输出:-
ab cd
ab cd
当我输入 ab(space)cd(enter key) 时,如果是 fgets(),我会在输出中得到 line feed,而如果是 gets(),则不会显示新的换行符。
在这种情况下,line feed 是怎么回事。
【问题讨论】:
-
The newline, if any, is retained.man fgets -
@SakthiKumar : 如果在
fgets的情况下保留换行符,那么代码 1 中应该有两个换行符,一个用于输入,另一个用于输出,但只有一个 -
printf("%s",str);。我猜输出中没有多余的\n