无法将输出写入cpp程序中的文本文件

时间:2013-06-25 15:13:05

标签: c++ file-handling

我有这个输入文件“https://code.google.com/codejam/contest/351101/dashboard/do/A-large-practice.in?cmd=GetInputFile&problem=374101&input_id=1&filename=A-large-practice.in&redownload_last=1&agent=website&csrfmiddlewaretoken=OWMxNTVmMTUyODBiYjhhN2Q2OTM3ZGJiMTNhNDkwMDF8fDEzNzIxNzI1NTE3ODAzMjA%3D” 我试着读这个文件:-using freopen(“filename.txt”,r,stdin);然后我希望写入的输出写入另一个文本文件,我可以在这个codejam练习题中上传给法官。

#include<iostream>
   #include<cstdio>
   using namespace std;
   int main()
   {
     int t,k=0,a[2000];
     freopen("ab.txt","r",stdin);

     scanf("%d",&t);

     while(t--)
     {
         freopen("cb.txt","w",stdout);

         int c;

         scanf("%d",&c);
         int n;
         scanf("%d",&n);
         for(int i=0;i<n;i++)
         scanf("%d",&a[i]);

         printf("Case #%d: ",++k);
         for(int i=0;i<n-1;i++)
         {for(int j=i+1;j<n;j++)
          if((a[i]+a[j])==c)
           {printf("%d %d\n",i+1,j+1);
             i=n;}
           }

     }
     return 0;
    }

这是我的代码。 现在的问题是输出文件cb.txt只包含输入的最后一行。我希望将整个输出写入cb.txt,所以我应该怎么做。

2 个答案:

答案 0 :(得分:0)

您可能将控制台输入(scanf)与文件输入(fscanf)混淆。

文件I / O的C风格函数具有 f 前缀 请参阅:fprintf, fscanf, fgets, and fputs

答案 1 :(得分:0)

我弄错了,我正在把freopen(“cb.txt”,“w”,stdout);在循环内部,所以输出每次都被覆盖,现在我把这条线放在循环外面并且它可以正常工作