c - fgets什么时候开始读取?

标签 c

如果我要向标准输出打印提示:

printf("> ");  

然后我说

fgets(tester, 80, stdin);

fgets 会读取整行(包括“>”)还是会在那之后开始?

最佳答案

提示是输出(在stdout上)。 fgets 正在从 stdin 读取输入。所以不,它不会读取您的提示。

您的终端同时显示 stdoutstderrstdin,但这并不意味着它们之间没有根本区别.

stdout 通常是行缓冲,并且 printf("> "); 缺少新行,因此输出可能要稍后才会出现在终端显示屏上。 fflush(stdout) 以确保它在 fgets() 之前输出。

printf("> ");  
fflush(stdout);
fgets(tester, 80, stdin);

关于c - fgets什么时候开始读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42722956/

相关文章:

c - 通过 c 中的函数添加和释放二维数组

javascript - WebAssembly 链接错误 : function import requires a callable

C:用于创建 HashMap 以使用链接存储字符串的指针

c - 为什么我无法使用 Visual Studio 读取 C 语言的文本文件?

c - X-DWM -- 帮我修复C源代码中的一个bug

c - 如何获得数字的第一个设置位的位置

c - 动态变量名: Concatenate Macro Define With Text

c - 初始化结构数组,其中包含数组元素

c - 争论需要双倍,但我需要 float ?

c - 在c中读取shell的输入