Zapis do pliku <fstream> bląd

0
#include <iostream>
#include <conio.h>
#include <string>
#include <fstream>
using namespace std;

int main()
{
    int n=500;
    fstream uchwyt_klucz;
    fstream uchwyt_text;
    fstream uchwyt_wynik; //z ofstream tez nie dziala poprawnie

    string klucz[n];
    string text[n];
    string wynik[n];

    int a;
    int b;
    int g;
    int j;
    int h;

    uchwyt_klucz.open("klucze1.txt",ios::in);
    uchwyt_text.open("tj.txt",ios::in);
    uchwyt_wynik.open("wynik4a.txt",ios::out);

    int z=0;
    while (uchwyt_text.good())
    {
        getline(uchwyt_text,text[z]);
        z++;
    }
    cout<<z;
    z=0;

    while(uchwyt_klucz.good())
    {
        getline(uchwyt_klucz,klucz[z]);

        z++;
    }

    cout<<"\n"<<z<<"\n";


    for(int i=0;i<z;i++)
    {
        a=text[i].length();
        b=klucz[i].length();
        for(j=0;j<a;j++)
        {
            g=int(text[i][j]);
            h=j%b;
            g=g+int(klucz[i][h])-64;
            if (g>90) {g=g-26;}
            wynik[i]=wynik[i]+char(g);
        }
        cout<<i+1<<"\t"<<wynik[i]<<"\n";
        uchwyt_wynik<<i<<"\t"<<wynik[i]<<"\n";
    }

    getch();
    return 0;
}

Jest to zadanie z matury '12/poziom rozszerzony/arkusz II/zad4. Wczytuję pliki .txt, i chcę wrzucić szyfry do pliku wynik.txt. Stringi wypisują się tylko do 110 numeru, w cmd jest całość.
Korzystam z C::B. W załączniku są pliki tekstowe (te samo, co na cke), wynikowy i zadanie w pdf.
Co może być tego przyczyną ?

1

Zadania nie podałeś ale chyba da się zgadnąć z kodu. Zacznij rozwiązywać zadania ze SPOJ'u, na początek przyjmij postawę pedanta perfekcjonisty - nie odpuszczaj dopóki twój czas nie będzie gorszy od najlepszego czasu o max 5%.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
  {
   ifstream fkey("klucze1.txt"),ftext("tj.txt");
   ofstream fret("wynik4a.txt");   
   for(string key,text;(getline(ftext,text))&&(getline(fkey,key));fret<<text<<endl) for(int i=0;i<text.length();++i) text[i]='A'+(text[i]-'A'+key[i%key.length()]-'A')%26;
   return 0;
  }
0

Dragon, wow :)
W sumie zauważyłem, że jak do mojego dodam na końcu linijkę:

uchwyt_wynik.close(); 

To działa poprawnie

1 użytkowników online, w tym zalogowanych: 0, gości: 1