2014-03-02 119 views
-1

在編程競賽的投入,他們提到了這一點:標準輸入,標準輸出,標準錯誤,我怎麼能得到我的程序從一個文本文件,並輸出到一個文本文件

「如何回答的問題? 在你出的問題要解決,你必須從一個文件.IN讀取數據,並寫在一個文件出結果。

我習慣的常規方式編程,在IDE中編寫代碼,編譯,然後執行i看看發生了什麼,並且它工作,但是我的答案被拒絕了。

有沒有人知道這些file.IN和.OUT的東西?

我的意思是,我如何才能讓我的程序採取從我寫的。我想給該程序的DAT一個文本輸入,並使其發送輸出到另一個文本文件?

感謝

+2

你必須爲你的庫例程讀取和寫入文件或重新打開標準輸出和文件。 – Hogan

+0

你能提供一個鏈接到比賽嗎?你能證明你是如何實現輸入/輸出的嗎? – moooeeeep

+0

@霍根我不明白,請澄清。 – Lelouch

回答

2

包括在你的頭文件stdio.h

在您的主要功能中,在頂部包含以下幾行。

freopen("input.in","r",stdin); 
freopen("output.out","w",stdout); 

在大多數的在線編程競賽,輸入是通過stdin輸出通過stdout給出。但是,在這種情況下,您必須從文件(.in)讀取輸入並寫入文件(.out)。 freopen將指定爲第三個參數的流(stdin,stdout)重新打開流,並使用指定的文件。

編輯:示例代碼從input.in獲取輸入並寫入output.out。

#include <stdio.h> 
int main(){ 
freopen("input.in","r",stdin); 
freopen("output.out","w",stdout); 
int n; 
scanf("%d",&n); 
printf("%d\n",n); 
return 0; 
} 
+0

**謝謝!** 您向我展示了關注的主題。 我的理解是,我不必在我的主函數中輸入函數(scanf ..),而是將數據放入input.in中? 與輸出函數(printf ..)一樣? – Lelouch

+0

不需要。您仍然需要在主函數中使用函數scanf,printf來讀/寫文件中的數據(.in和.out)。 scanf使用來自控制檯的標準輸入流stdin,而printf使用作爲標準輸出的標準輸出到控制檯。隨着程序的其餘部分,'freopen'命令將把流從控制檯重定向到你的文件。所以,這意味着你不需要從控制檯/終端輸入信息。相反,粘貼任何你想在input.in中輸入的輸入,並期望輸出中的所有輸出。出。 –

+0

Magnificient **謝謝!** fscanf和fprintf以及FILE * f = NULL; ...?有什麼不同? – Lelouch

相關問題