兩種方法
為鐵西等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及鐵西網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都做網(wǎng)站、鐵西網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
1 命令行重定向
比如 編譯出a.exe
使用a.exe in.txt out.txt
其中用于重定向輸入, 用于重定向輸出
2 代碼方式
通過freopen函數(shù) 重定向stdin和stdout
比如
stdin = freopen("in.txt", stdin);
重定向不是C語言而是是shell(命令行窗口)做的事情,它把文件接到程序的標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、或標(biāo)準(zhǔn)錯(cuò)誤流上。
如果程序準(zhǔn)備用重定向來做,直接從標(biāo)準(zhǔn)輸入讀數(shù)據(jù),比如scanf或者cin,然后往標(biāo)準(zhǔn)輸入寫結(jié)果,printf或者cout。
然后程序執(zhí)行的時(shí)候,在命令行窗口下使用重定向來指定將輸出重定向到一個(gè)文件:
例如,當(dāng)你的程序名叫做test.exe:
執(zhí)行 test.exe essayct.txt。
C語言中可以通過freopen函數(shù)實(shí)現(xiàn)文件的重定向,即把一個(gè)打開的文件,重定向到另外一個(gè)文件上。
freopen是被包含于C標(biāo)準(zhǔn)庫頭文件stdio.h中的一個(gè)函數(shù),用于重定向輸入輸出文件。該函數(shù)可以在不改變代碼原貌的情況下改變輸入輸出環(huán)境,但使用時(shí)應(yīng)當(dāng)保證文件是可靠的。
函數(shù)原型為
FILE *freopen( const char *filename, const char *mode, FILE *stream );
該函數(shù)可以用來重定向標(biāo)準(zhǔn)輸入輸出,比如將標(biāo)準(zhǔn)輸出stdout重定向到out.txt的語句為
stdout = freopen("out.txt", "w", stdout);
執(zhí)行該語句后,凡是通過標(biāo)準(zhǔn)輸出語句,如printf, puts, putchar等輸出到標(biāo)準(zhǔn)輸出的內(nèi)容,均會(huì)被寫入到out.txt中。
是指輸入/輸出流重定向吧?
比如printf和scanf就是默認(rèn)的通過標(biāo)準(zhǔn)輸入輸出來傳送的函數(shù)。
但是比如設(shè)置一個(gè)文件指針,再用重定向把輸出指向一個(gè)文本,類似
fprintf
(fp,"12345",string);那么就是把程序的輸出接收由顯存替換成fp指向的文本,這就是輸出流的重定向。