2013-06-25 4 views
-1

У меня есть этот входной файл «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 для судьи.Не удается записать вывод в текстовый файл в программе cpp

#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

Да, один знак плюса может иметь значение. – chris

+0

Вы имеете в виду w +, извините, что я новичок в обработке файлов – swapedoc

+1

Скорее всего, вам гораздо проще использовать C++ I/O вместо C. Это тип безопасный и удобный для чтения, плюс вы получаете потоки файлов, которые закрываются, когда они будут сделаны , – chris

ответ

0

Возможно, у вас есть вход в консоль (scanf), запутанный с вводом файла (fscanf).

Функции C-стиля для ввода/вывода файлов имеют префикс f.
См.: fprintf, fscanf, fgets, and fputs.

+0

'freopen' перенаправляет его. – chris

0

Я получил свою ошибку, я помещал freopen («cb.txt», «w», stdout); внутри цикла, так что выход каждый раз переписывался, теперь я помещал эту линию за пределы цикла, и он работает