我有一臺Linux機器。讀標準輸入以塊...(可能與scanf函數?)
在此Linux中,有一個項目。
在這個程序中,我有這樣一個循環:
int num=*"what num needs to be"*;
char proc[num];
int result;
while (1) {
result=scanf("%[^'&']%s",proc);
printf("And proc is: %s\n",proc);
printf("Result counter was: %i\n",result)
if (result == 0) break;
}
scanf("%[^'&'],%s",proc)
printf("post lop result is: %s", proc);
正如你可能已經猜到了,標準輸入包含我需要的「&」字符劃定的數據。
正如我希望有人更熟練比我已經猜到了,輸出看起來是這樣的:
And proc is: *first delineated section*
Result counter was: 1
And proc is: *first delineated section*
Result counter was: 0
post loop result is: *first delineated section*
我認爲scanf函數應該消耗標準輸入它已經讀的一部分。爲什麼不這樣做?
此外,供參考:這是被一個很便宜的,慢的服務器上運行。體積可能會或可能不會超過輕微。效率是這樣一個加號,我接受但有人可能會認爲我這樣做....
謝謝!
「scanf()」的格式指定它應該分配給兩個參數,但只傳遞一個參數。這是從提問者的原始代碼傳播出來的錯誤。 – jxh
@jxh:謝謝;我應該編寫代碼 - drat! –
謝謝,這確實清除了它! – user1833028