【问题标题】:Get the char from scanf("%d")从 scanf("%d") 获取字符
【发布时间】:2020-07-08 03:38:54
【问题描述】:

使用scanf("%d", &input)时,如果用户输入a,有什么办法可以得到输入的字符?

【问题讨论】:

  • 如果 scanf 返回 0,则调用 getchar
  • 只需将input 分配给char 变量即可。

标签: c scanf


【解决方案1】:

不,没有。

您可以使用fgetssscanf 的组合

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);

代码在失败时会退出程序,但如果没有失败并且输入不大于缓冲区,那么你将在缓冲区中获得完整的输入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 2014-05-30
    • 2011-01-10
    • 2020-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多