文件操作在編程語言中扮演着重要的角色,下面是C/C++中的文件操作 --- 重定向文件操作
重定向文件操作有下面幾個優勢:
1. 操作快捷、方便、簡單。
2. 在對文件進行讀寫等操作時,可以使用常規的輸入輸出函數/語句,例如:直接使用printf()和scanf()等等;當然,也能夠使用原來的fprintf()和fscanf()。
然而它也有一個地方不足:在文件操作的模式爲只讀模式時,如果在路徑沒有找到指定文件時,無法自行創建一個文件。
實現方法:在main函數的開頭加上兩條語句,例如:
freopen("D:\\abc.in","r",stdin); freopen("D:\\abc.out","w",stdout);
其中,第一個參數表示文件的名稱和路徑,第二個參數表示文件操作的模式("r","w"分別表示只讀和只寫;類似的,還有"rb"和"wb"分別表示二進制文件的只讀與只寫),第三個參數表示文件的“流”(其實我也不知道這是什麼意思,先這麼記着吧),我們先默認填stdin和stdout。
該函數有一個返回值FILE*,表示指向該文件的指針,當指針的值爲NULL時,則表示打開或創建文件失敗。
最後還要記得調用fclose(),關閉文件並釋放資源。
接下來,我們通過一個非常簡單的例子來具體使用一下此函數。
【輸入】兩個整數a和b
【輸出】a+b的值
源代碼如下:
int main(void) { int a,b; freopen("D:\\abc.in", "rb", stdin); freopen("D:\\abc.out", "wb", stdout); scanf("%d%d", &a, &b); printf("%d is the result\n",a, b); fclose(stdin); fclose(stdout); return 0; }
OK,關於重定向輸入輸出的介紹就暫時告一段落。