【发布时间】:2011-05-20 23:15:39
【问题描述】:
为什么scanf("%c", &letter); 不起作用。其余的都在工作
#include <stdio.h>
main(){
int number;
float number1;
char letter;
char letter2 [5];
printf("Enter an int: ");
scanf("%d", &number);
printf("Enter a float: ");
scanf("%f", &number1);
printf("Enter a letter: ");
scanf("%c", &letter);
printf("Enter a string: ");
scanf("%s", letter2);
printf("INT = %d\n", number);
printf("FLOAT = %f\n", number1);
printf("LETTER = %c\n", letter);
printf("LETTER2= %s\n", letter2);
getch();
}
【问题讨论】:
-
似乎是正确的。你有什么结果?
-
scanf("%c", &letter) 不工作
-
我认为
scanf将\n留在缓冲区中,letter变为\n。不过不确定。 -
从样本中可以看出,Khachik 在这里很赚钱。 TBH 在十多年的 C 编程生涯中,我从未使用过 scanf()。在这种情况下,在标准输入上执行 fgets() 并使用 atoi 或一些类似的函数可能会更整洁。一个优点是您可以对输入进行检查,以确保它是正确的/符合您的预期。
-
Simple C scanf does not work? 的可能重复项(以及其他几个 - 尝试 SO 搜索 scanf)
标签: c