VSCode无法使用freopen文件输入输出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VSCode无法使用freopen文件输入输出相关的知识,希望对你有一定的参考价值。

VSCode编写C++程序时使用freopen文件输入输出无效,只能手动输入输出,求大神帮忙解决

freopen本来就只能同时打开一个文件,不过如果是分别进行读写操作的话,可以同时打开两个一个读一个写。但是不能对多个文件进行同时读写,建议还是不要用freopen这种函数,它在正规的工程中是不允许出现的,只是竞赛的时候为了加快得到结果的一个取巧的用法,在VS里面已经废止了,请养成良好的编程习惯追问

复制别人的还是别来强答了吧?我就输入一个文件,能看了题再去找东西复制吗?

复制别人的还是别来强答了吧?我就输入一个文件,能看了题再去找东西复制吗?

参考技术A 改变你launch.json中的CWD目录到你输入输出的文件夹

参考:c++ - VS Code on Windows debugger does not work with freopen - Stack Overflow

输入输出重定向

0. C语言的标准输入输出

 stdin

 stdout

 stderr

 

1. 重定向到文件

 

 1 #include <stdio.h>
 2 
 3 int main(){
 4     char a[100];
 5     if(1==0){
 6         freopen("data.txt","w",stdout);
 7         printf("hello word");
 8     }else{
 9         freopen("data.txt","r",stdin);
10         
11         scanf("%s",a);
12         printf("%s\n",a);
13     }
14     
15     return 0;
16 }

输出结果

data.txt
-------------------
hello word
-----------------------------

hello
请按任意键继续. . .

 

2. 方式二

重定向(windows):

若输入_Test.exe <data_in.txt >data_out.txt
则从data_in.txt把“hello”读到str中,在把str打印到data_out.txt中.
 
管道(linux, UNIX):
cmd下输入test_out.exe | test_in.exe
则将test_out中打印的内容(xxoo)作为test_in的输入,testin将xxoo打印到标准输入(显示器上).
 

以上是关于VSCode无法使用freopen文件输入输出的主要内容,如果未能解决你的问题,请参考以下文章

freopen重定向输入

freopen函数的用法

文件输入输出:重定向

有关文件操作的总结

文件输入输出重定向

C++ 中 freopen()函数的用法