【发布时间】:2020-07-08 03:38:54
【问题描述】:
使用scanf("%d", &input)时,如果用户输入a,有什么办法可以得到输入的字符?
【问题讨论】:
-
如果
scanf返回 0,则调用getchar? -
只需将
input分配给char变量即可。
使用scanf("%d", &input)时,如果用户输入a,有什么办法可以得到输入的字符?
【问题讨论】:
scanf 返回 0,则调用 getchar?
input 分配给char 变量即可。
不,没有。
您可以使用fgets 和sscanf 的组合
int input;
char buffer[100]; // Or whatever size you want
if(! fgets(buffer, sizeof buffer, stdin)) exit (EXIT_FAILURE);
if(sscanf(buffer, "%d", &input) != 1) exit(EXIT_FAILURE);
代码在失败时会退出程序,但如果没有失败并且输入不大于缓冲区,那么你将在缓冲区中获得完整的输入。
【讨论】: