包括DOS在内的大多数 *** 作系统,都提供了将
程序的输入和输出
重定向到不同设备上的手段。这就是说,程序的输出并不一定是到屏幕上,还可以重定向到文件或打印机端口上;程序的输入并不一定来自键盘,还可以重定向到文件上。在DOS中,重定向是通过重定向字符“<”和“>”来实现的。例如,如果你要求程序PRINTIT.EXE的输入来自文件STRINGS.TXT,你就可以在DOS提示符下键入如下命令:C:\>PRINTIT<STRINGS.TXT请注意,可执行文件的名称总是第一个出现。“<”符号告诉DOS将STRINGS.TXT中的字符串作为程序PRINTIT.EXE的输入。关于重定向stdout
标准流的例子请看4. 5。标准流的重定向并不一定总在 *** 作系统下进行,在程序内部,用标准C库函数freopen()同样可以重定向标准流。例如,如果你要求在程序内部将标准流stdout重定向到文件OUTPUT.TXT,你就可以象下面这样使用freopen()函数:是指输入/输出流重定向吧?
比如printf和scanf就是默认的通过标准输入输出来传送的函数。
但是比如设置一个文件指针,再用重定向把输出指向一个文本,类似
fprintf
(fp,"12345",string)那么就是把程序的输出接收由显存替换成fp指向的文本,这就是输出流的重定向。
在c语言中,可以使用freopen将输入输出重定向。
c语言的标准输入输出为stdin和stdout,这两个变量的类型为file*类型,也就是说,标准输入输出 *** 作,其本质还是文件 *** 作。
当需要重定向时,可以调用
stdin
=
freopen("data.in","r",stdin)
stdout
=
freopen("data.out","w",stdout)
将标准输入重定向到data.in,将标准输出重定向到data.out。
当调用该函数时,需要引用头文件stdio.h。
评论列表(0条)