栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

等待用户在C中输入?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

等待用户在C中输入?

从GNU C库手册:

函数:char * fgets(char * s,int计数,FILE * stream)

fgets函数从流中读取直到换行符(包括换行符)的字符,并将它们存储在字符串s中,并添加一个空字符以标记字符串的结尾。您必须提供计数字符(以s为单位),
但读取的字符数最多为count-1 。多余的字符空间用于在字符串末尾保留空字符。

因此,

fgets(key,1,stdin);
读取0个字符并返回。(立即阅读)

使用

getchar
getline
代替。

编辑:

count
流中有可用字符时,fgets也不会返回,它会一直等待换行符,然后读取
count
字符,因此,在这种情况下,“任何键”可能不是正确的措词。

您可以使用以下示例来避免行缓冲:

#include <stdio.h>#include <termios.h>#include <unistd.h>int mygetch ( void ) {  int ch;  struct termios oldt, newt;  tcgetattr ( STDIN_FILENO, &oldt );  newt = oldt;  newt.c_lflag &= ~( ICANON | ECHO );  tcsetattr ( STDIN_FILENO, TCSANOW, &newt );  ch = getchar();  tcsetattr ( STDIN_FILENO, TCSANOW, &oldt );  return ch;}int main(){    printf("Press any key to continue.n");    mygetch();    printf("Bye.n");}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412534.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号