如果我要向标准输出打印提示:
printf("> ");
然后我说
fgets(tester, 80, stdin);
fgets 会读取整行(包括“>”)还是会在那之后开始?
最佳答案
提示是输出(在stdout
上)。 fgets
正在从 stdin
读取输入。所以不,它不会读取您的提示。
您的终端同时显示 stdout
、stderr
和 stdin
,但这并不意味着它们之间没有根本区别.
stdout
通常是行缓冲,并且 printf("> ");
缺少新行,因此输出可能要稍后才会出现在终端显示屏上。 fflush(stdout)
以确保它在 fgets()
之前输出。
printf("> ");
fflush(stdout);
fgets(tester, 80, stdin);
关于c - fgets什么时候开始读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42722956/