【发布时间】:2020-05-16 17:00:35
【问题描述】:
我正在尝试读取输入字符直到它是'a'。但是我需要输入所有字符直到 a ) 输入它在下一个循环中使用 f 以及换行符。
#include<stdio.h>
int main()
{
char val;
while(1)
{
printf("\nenter val: (a to stop)");
scanf("%c",&val);
printf("val is %d\n",(int)val);
if(val=='a')
break;
else
continue;
}
return 0;
}
输出:
enter val: (a to stop)f
val is 102
enter val: (a to stop)val is 10
enter val: (a to stop)
【问题讨论】:
-
提示:停止使用
scanf并开始使用fread或fgetc之类的东西。 -
不清楚你的问题是什么。换行 是 一个字符,所以你看到的行为肯定是预期的。你到底想要什么?
-
else continue不需要 -
@moonshines:不,换行符始终是一个字符。通常可以配置您的输入设备,以便在按下字符后立即返回输入,而不是等待换行符,但有关如何执行此操作的详细信息取决于您的操作系统。有很多关于该主题的 SO 问题。
-
@rici 我需要输入的值,直到输入“a”,所以给 char 并按 Enter 会不必要地添加换行符,所以如何在没有换行符的情况下做到这一点。即