c - 在C中读取单个字符

标签 c scanf

我正在尝试从控制台读取一个字符(在 while 循环内)。但它读取了不止一次。

输入:

a

输出:

char : a  char : char : '

代码:

while(..)
{
    char in;
    scanf("%c",&in);
}

我怎样才能只读取'a'?

最佳答案

scanf("%c",&in);

留下一个换行符,在下一次迭代中使用。

将其更改为:

scanf(" %c",&in); // Notice the whitespace in the format string

告诉 scanf 忽略空格。

scanf(" %c",&in);
getchar(); // To consume the newline 

关于c - 在C中读取单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419954/

相关文章:

c - 在C中: comparing arrays with both string and integer elements

c - 当零是计算器程序中的操作数时没有结果

c - C 中的 fscanf 动态数组?

valgrind 的 c 快速排序内存泄漏

c - AVX 加载指令在 cygwin 上失败

c - 在 while(getchar() != '\n' ) 中用 fgetc 或 getc 替换 getchar;

将字符串转换为十六进制

c - c 中的文本文件(int、string、string 和 float)的 fscanf 和 fgets

C scanf() 扫描集从控制台读取逗号分隔值(字符串和整数)

c - 包含后未声明的方法