包括DOS在内的大多数操作系统,都提供了将程序的输入和输出重定向到不同设备上的手段。这就是说,程序的输出并不一定是到屏幕上,还可以重定向到文件或打印机端口上;程序的输入并不一定来自键盘,还可以重定向到文件上。
在DOS中,重定向是通过重定向字符“<”和“>”来实现的。例如,如果你要求程序PRINTIT.EXE的输入来自文件STRINGS.TXT,你就可以在DOS提示符下键入如下命令:
C:\>PRINTIT
重定向不是C语言而是是shell(命令行窗口)做的事情,它把文件接到程序的标准输入、标准输出、或标准错误流上。
如果程序准备用重定向来做,直接从标准输入读数据,比如scanf或者cin,然后往标准输入写结果,printf或者cout。
然后程序执行的时候,在命令行窗口下使用重定向来指定将输出重定向到一个文件:
例如,当你的程序名叫做test.exe:
执行 test.exe > essayct.txt。
$ 在linux中的shell脚本中表示变量;
重定向我只在Linux下用过, > 它的朝向表示要输出到哪里,要输出到文件,echo "hello" > /path/filename
你可以试试看,一般权限够的话那里都可以,前提可能要指明文件的路径。
C语言中可以通过freopen函数实现文件的重定向,即把一个打开的文件,重定向到另外一个文件上。
freopen是被包含于C标准库头文件
函数原型为
FILE *freopen( const char *filename, const char *mode, FILE *stream );
该函数可以用来重定向标准输入输出,比如将标准输出stdout重定向到out.txt的语句为
stdout = freopen("out.txt", "w", stdout);
执行该语句后,凡是通过标准输出语句,如printf, puts, putchar等输出到标准输出的内容,均会被写入到out.txt中。