【发布时间】:2019-07-26 17:24:23
【问题描述】:
一个简单的C问题,我想从标准输入(用户输入)中读取整数,标准输入的每一行都包含一个整数,空行表示输入结束。 我尝试使用gets() 和scanf(),但它不起作用。
while (1){
char a;
scanf("%c",&a);
printf("%c",a);
if (a=='\r'||a=='\n'){
break;
}
}
当我使用scanf()时,每次按回车时它都会终止;
while(1){
char a[10];
gets(a);
if (a=='\r'||a=='\n'){
break;
}
}
当我使用gets()时,'\r'或'\n'不能被读入缓冲区,所以它永远不会中断。
谁能帮帮我,提前谢谢!
【问题讨论】:
-
永远不要使用
gets。要使用 scanf 读取整数,请使用%d。 -
混合
scanf和get/fgets效果不佳。无论如何scanf根本不是为交互式用户输入而设计的。请参阅下面的答案。
标签: c