我編寫了一個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