我对fgets有一些疑问。据我所知,它在字符串的末尾添加了“ \ n”,而不是“ \ 0”。因此,如果我编写这段代码:
fgets(buff,2,stdin);
printf("%s",buff);
Run Code Online (Sandbox Code Playgroud)
因此,fgets读取两个字符,我输入为“ y”,因此buff应该为“ y \ n”。我希望printf打印y并添加一行,而它打印“ y”而不添加一行。你能解释为什么吗?
char * fgets ( char * str, int num, FILE * stream );
Run Code Online (Sandbox Code Playgroud)
从输入流中读取字符,并将它们作为C字符串存储到str中,直到已读取(num-1)个字符或到达换行符或到达文件末尾为止,以先发生的为准。
换行符使fgets停止读取,但是该函数将其视为有效字符并包含在复制到str的字符串中。
复制到str的字符后会自动附加一个终止的空字符('\ 0')。
| 归档时间: |
|
| 查看次数: |
6072 次 |
| 最近记录: |