2013-10-19 38 views

回答

9

使用重定向將輸入的文件標準輸入的內容,所以你需要從標準輸入讀取你的代碼裏面,所以像(檢查省略清晰的錯誤)

#include <stdio.h> 

#define BUFFERSIZE 100 

int main (int argc, char *argv[]) 
{ 
    char buffer[BUFFERSIZE]; 
    fgets(buffer, BUFFERSIZE , stdin); 
    printf("Read: %s", buffer); 
    return 0; 
} 
0

你不使用fgets,您使用gets

重定向意味着這一點,你的終端投入將文件內容。但是你的程序不知道它來自哪裏,因爲它是由操作系統完成的。

+2

「使用獲取」永遠不是正確的答案。有一個原因是該函數在C99中被棄用,並在C11中被刪除。 –

2

1)您關閉標準輸入然後指定一個不同的文件處理程序 2.)用其他文件處理程序替換stdin 使用dup2函數可以實現它