我编写了一个C程序来从std输入中选择数据,该数据以一个数字开始,表示数据集的数量,然后在表单中有N对数据:(xy),所以我写的代码如下:读取数据并用scanf跳过括号
#include <stdio.h>
int main()
{
int n_sets;
scanf("%d", &n_sets);
int i;
for(i = 0; i < n_sets; ++i)
{
int m, n;
scanf("(%d %d)", &m, &n);
printf("%d\t%d\n", m, n);
}
return 0;
}
但它不起作用。在输入数据集的编号后,程序直接打印未初始化的m & n。但是当我在(%d %d)
之前添加一个空格时,它工作正常。有人可以解释这一点?
1。检查从'scanf'返回的值2.使用调试器找出发生了什么问题 –
这让我想起'fflush()'.. – Lucio
@Lucio:从我记忆中来看,fflush在stdin上是一个仅限微软的扩展。 – zentrunix