重定向输入与输出就是把原本程序需要的输入,比如是标准输入读入的数据改从文件输入得到,或者是写入到标准输出的数据更改成为写到标准输出。
重定向输入与输出有两种方法,分别是freopen函数以及在操作系统内使用命令行进行。
首先是第一种方法,就是freopen函数,他有三个参数,第一个是重定向的文件名,第二个是字符串,代表是读入还是写入,读入是"r",写入是"w",第三个就是原本读入或者写入的文件名(键盘以及显示器都是文件,在c语言看来).
样例程序:
int main()
{
freopen("in.txt","r",stdin);
char ch;
while((ch = getchar())!=EOF)
{
putchar(ch);
}
return 0;
}
这样子,当前目录下的in.txt文件里的所有数据都会当入要读入的数据来进行显示,其实这个程序就是把in.txt文件的数据全部显示在显示器上。
同时这个程序无论在linux还是Windows上都可以执行。
第二种方法就是,利用操作系统的命令行进行,再次例举两种主流的操作系统Linux和Windows。
在Linux下,编译一般是采用gcc编译器编译c程序,然后会生成一个a.out的文件(如果你不指定文件名的话),然后./a.out < in就可以实现从in来读取输入数据。
在Windows下,编译好以后会生成一个exe的二进制文件,打开命令提示符转到对应目录下,假设生成的文件是a.exe的话,就可以a.exe 〈 in就可以了。
重定向输入与输出有两种方法,分别是freopen函数以及在操作系统内使用命令行进行。
首先是第一种方法,就是freopen函数,他有三个参数,第一个是重定向的文件名,第二个是字符串,代表是读入还是写入,读入是"r",写入是"w",第三个就是原本读入或者写入的文件名(键盘以及显示器都是文件,在c语言看来).
样例程序:
int main()
{
freopen("in.txt","r",stdin);
char ch;
while((ch = getchar())!=EOF)
{
putchar(ch);
}
return 0;
}
这样子,当前目录下的in.txt文件里的所有数据都会当入要读入的数据来进行显示,其实这个程序就是把in.txt文件的数据全部显示在显示器上。
同时这个程序无论在linux还是Windows上都可以执行。
第二种方法就是,利用操作系统的命令行进行,再次例举两种主流的操作系统Linux和Windows。
在Linux下,编译一般是采用gcc编译器编译c程序,然后会生成一个a.out的文件(如果你不指定文件名的话),然后./a.out < in就可以实现从in来读取输入数据。
在Windows下,编译好以后会生成一个exe的二进制文件,打开命令提示符转到对应目录下,假设生成的文件是a.exe的话,就可以a.exe 〈 in就可以了。