"); 然后我说 fgets(tester, 80, stdin); fgets 会读取整行(包括“>”)还是会在那之后开始? 最佳答案 提示是输出-6ren">
gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 18:24:16 25 4
gpt4 key购买 nike

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

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com