通常 gets() 将输入作为 \n ,它位于它上面的 printf() 的末尾
generally gets() takes the input as \n which is at the end of printf() above it
为什么 gets() 在这里要求字符串。我的意思是,为什么它不使用前一个 printf() 中的换行符而程序就终止了?
是的,我知道我应该使用 fgets() 之类的东西。请不要提及它。
参考代码-
#include <stdio.h>
main()
{
char str[30];
printf("\n");
gets(str);
puts(str);
}
printf("\n");
将输出打印到 stdout
。 gets(str)
从 stdin
读取输入。
进一步参考 stdin vs stdout
来自char *gets(char *str)
的手册:
Reads a line from stdin and stores it into the string pointed to by,
str. It stops when either the newline character is read or when the
end-of-file is reached, whichever comes first.
来自 printf 手册:
The functions printf() and vprintf() write output to stdout, the
standard output stream;
如手册所述,gets
从 stdin
中读取一行。
函数 printf
写入 stdout
。
因此 gets
不会阅读 printf
正在写的内容。
为什么 gets() 在这里要求字符串。我的意思是,为什么它不使用前一个 printf() 中的换行符而程序就终止了? 是的,我知道我应该使用 fgets() 之类的东西。请不要提及它。
参考代码-
#include <stdio.h>
main()
{
char str[30];
printf("\n");
gets(str);
puts(str);
}
printf("\n");
将输出打印到 stdout
。 gets(str)
从 stdin
读取输入。
进一步参考 stdin vs stdout
来自char *gets(char *str)
的手册:
Reads a line from stdin and stores it into the string pointed to by, str. It stops when either the newline character is read or when the end-of-file is reached, whichever comes first.
来自 printf 手册:
The functions printf() and vprintf() write output to stdout, the standard output stream;
如手册所述,gets
从 stdin
中读取一行。
函数 printf
写入 stdout
。
因此 gets
不会阅读 printf
正在写的内容。