为什么gets()在这里要求字符串。我的意思是,为什么它不使用前一个printf()中的换行符并且程序刚刚终止? 是的,我知道我应该使用fgets()和类似的东西。请不要提及它。
参考代码 -
#include <stdio.h>
main()
{
char str[30];
printf("\n");
gets(str);
puts(str);
}
答案 0 :(得分:3)
来自char *gets(char *str)
的手册:
从stdin读取一行并将其存储到指向的字符串中, 海峡。当读取换行符或者换行符时,它会停止 达到文件结尾,以先到者为准。
来自printf的手册:
函数printf()和vprintf()将输出写入stdout,即 标准输出流;
如手册所述,gets
从stdin
读取一行。
函数printf
写入stdout
。
因此,gets
无法阅读printf
正在撰写的内容。
答案 1 :(得分:1)