我有这个输入文件“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,所以我应该怎么做。
答案 0 :(得分:0)
您可能将控制台输入(scanf
)与文件输入(fscanf
)混淆。
文件I / O的C风格函数具有 f 前缀
请参阅:fprintf, fscanf, fgets, and fputs
。
答案 1 :(得分:0)
我弄错了,我正在把freopen(“cb.txt”,“w”,stdout);在循环内部,所以输出每次都被覆盖,现在我把这条线放在循环外面并且它可以正常工作