所以我們正在學習scanf和輸入重定向。我必須從標準輸入讀取數據並將其存儲在預定大小的數組中。之後,我們必須要求用戶輸入一個整數x,然後在數組中進行一些基本搜索。命令行中的用戶必須使用「./a.out < somefile.txt」來提供數據。我正在通過scanf讀取這些數據,並使用了一個while循環,當scanf讀取EOF時終止。問題是,當我想重新使用scanf來要求用戶輸入整數x來在數組中搜索時。 scanf總是返回-1並將0存儲在x中,所以我似乎無法使用scanf。我對scanf的活動感到困惑。下面我提供了我的程序的簡單代碼和一個示例.txt文件。用戶在命令行通過重定向進入在使用scanf讀取數據時重定向輸入問題
的data.txt文件「<」
1
2
3
4
5
6
現在我的示例程序
int main(){
int arr[6], i = 0, value, x;
while(scanf("%d",&value) != EOF){
arr[i] = value;
i++;
}
printf("Enter integer to search for: ");
scanf("%i", &x);
printf("You entered %i", x);
return 0;
}
現在,這是輸出,它只是運行,不等待供用戶輸入數據
Enter integer to search for:
You entered 0
無法重現它。 – haccks
@haccks:你可能需要在你的data.txt結尾處有一個換行符。 – nmichaels