每当我尝试读取输入时
for (int i = 1; i <= 10; ++i) {
scanf("(%c, %d, %d, %d)",&charv,&intv1,&intv2,&intv3);
}
我只访问了一次scanf()
。有什么问题?
输入 -> (P, 1, 2, 3)......(P, 2, 3, 12)
最佳答案
您对 scanf()
的使用情况是错的。您必须提供指向变量的指针 来存储 scanf()
读取的值.你需要像下面这样使用它
for (int i = 1; i <= 10; ++i) {
scanf("%c, %d, %d, %d",&charVar,&intvar1,&intVar2,&intVar3);
}
编辑:
要点 1:提供的格式字符串 应该与输入完全匹配。否则,scanf()
将失败。如果您输入的格式不是 (<char>, <int>....
,它会失败。缺少(
, )
, ,
将导致提供的格式字符串与输入不匹配并生成 scanf()
停止扫描。强烈建议检查 scanf()
的返回值以确保其成功。
第 2 点:避免阅读 \n
由先前的 ENTER<\kbd> 键存储,您应该在 %c
之前添加一个前导空格.所以,你可以使用类似的东西
scanf(" %c, %d, %d, %d",&charVar,&intvar1,&intVar2,&intVar3);
^
|
Notice here
关于c - 如何在for循环中使用scanf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29797394/