#include <stdio.h>
void main () {
char str[5];
fgets(str, sizeof(str), stdin);
printf("%s.", str);
}
我用C语言编写了这段简单的代码,想要将字符串和一个句点同时打印在同一行上。但是当我输入长度为3或更少字符的字符串时,输出结果会在字符串后出现换行。
输入:
abc
输出:
abc
.
如果我输入的内容恰好为4个字符,输出结果会如我所愿,没有换行符。
我尝试使用gets()和scanf()函数,它们的效果很好,但我不能使用它们。
有人知道为什么会出现这种情况以及解决办法吗?
fgets
的文档吗?如果有,再仔细读一遍。如果没有:请仔细阅读。 - too honest for this sitefgets
在缓冲区中添加的换行符的建议。 - user3386109'\n'
等待被下一个fgets()
调用读取。但是程序先结束了。 - chux - Reinstate Monica