平时我们调试的时候,总是要一个个样例输入,再看输出。
但是如果我们输入量比较大的时候,虽然可以用复制功能,但是如果输出内容太多,屏幕显示不了,对于我们调试就很不方便。
这里介绍一下freopen函数的使用。下面先看一个样例:
输入10个数,再输出10个数。
一般我们会这样写:
#include"stdio.h"
int main()
{
int n=10;
int a[20];
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
printf("%d\n",a[i]);
return 0;
}
但是如果数据很多呢?或者多组输入呢?
我们可以换下面的姿势:
#define TEST
#include"stdio.h"
int main()
{
#ifdef TEST
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
#endif // TEST
int n=10;
int a[20];
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
printf("%d\n",a[i]);
#ifdef TEST
fclose(stdin);
fclose(stdout);
#endif // TEST
return 0;
}
与前面相比,多了个宏定义TEST,后面是当TEST被定义了执行的语句。
stdin是我们的输入流,stdout是我们的输出流。
我们分别用文件的只读和写来对他们重新定向。
作用就是in文件的内容只需要我们把之前的内容准备好就行了。
然后每次运行完打开out文件就能看到我们输出的结果了。
最后记得关闭文件,否则文件会因为被占用而可能出现一系列问题。
运行时我们看不到屏幕有任何输入输出。
在与工程同目录下,我们先准备好in.txt文件,并输入我们需要输入的数据,关闭保存。
运行程序后可以看到多了个out.txt文件,打开就可以看到我们原本要输出到屏幕的内容。
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-09 13:27:45