【问题标题】:scanf() not taking multiple inputsscanf() 不接受多个输入
【发布时间】:2016-02-07 03:49:23
【问题描述】:

您好,我刚开始在我的 Debian 系统上使用 gcc 编译器学习 C 编程。这是代码

main()
{
    fflush( stdin );
    int a,b;
    scanf("%d,%d",&a,&b);
    printf("%d,%d",a,b);
}

scanf 不接受第二个变量的输入。我按 2 然后返回键,它会显示

root@debian:/home/wis# ./test
2
2,0root@debian:/home/wis#

我也使用了空格键和制表键。请帮帮我。

【问题讨论】:

  • 在向初学者提问之前请阅读一些 C 书籍!
  • 删除fflush( stdin );。和main() → int main(void)

标签: c scanf


【解决方案1】:

您将scanf 字符串定义为"%d,%d",因此程序需要像1,2 这样的输入。

如果您只给它一个数字并按 Enter,它会解析第一个数字并保留第二个数字不变。它在声明时被分配了0,所以这就是您在打印时看到的。

您的printf 语句将受益于最后的"\n",并且您的代码 sn-p 需要缩进。下次请出示您的包含 (#include <stdio.h>),这样我们可以更轻松地编译和运行代码。

【讨论】:

  • "声明时赋值为 0" 不,不是。
猜你喜欢
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
相关资源
最近更新 更多