我有一個程序,輸出一個巨大的整數數組到標準輸出,每一個整數在一行中。例如:從標準輸出一次掃描兩個數字
103
104
105
107
我需要編寫另一個程序,讀取該數組並填充數字不是前一個數字的1的增量的空格。數字之間的唯一區別是2(105,107),這使得它更容易。
這是我的代碼做的邏輯:
printf("d",num1);
if ((num2-num1) != 1)
numbetween = num1 + 1;
printf("%d", numbetween);
printf("%d", num2);
else(
printf("%d",num2);
)
所以這個程序的輸出現在是:
103
104
105
106
107
我的問題是閱讀的數字。我知道我可以做while (scanf("%hd", &num) != EOF)
一次讀取所有行。但爲了做我想要的邏輯,我需要一次讀兩行,並與他們進行計算,我不知道如何。
如何在每個循環迭代上執行兩次'scanf()'調用? –
您不必在每次迭代中讀取兩個數字。你*通過閱讀兩個數字開始*。之後,算法一次只讀取一個數字,促進先前迭代的'num2'首先是'num1',從標準輸入重新填充'num2'等。通過輸出'num2'結束。 – WhozCraig
@WhozCraig我當時是個白癡。這樣做有一個更簡單的方法。抓住文件中的第一個數字,獲取最後一個數字,從第一個數字開始循環,直到您到達最後一個數字並每次輸出循環計數器。但現在的問題是,我如何從stdout中獲取第一個和最後一個數字? – user3011338