Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Matura 2012 zadanie nr 4 szyfr - program zawiesza się

Ostatnio zmodyfikowano 2014-05-12 22:01
Autor Wiadomość
shadow193
Temat założony przez niniejszego użytkownika
Matura 2012 zadanie nr 4 szyfr - program zawiesza się
» 2014-05-12 19:59:08
Witam, jak w temacie, program kompiluje się, jednak w trakcie wykonywania nic się nie dzieje a w pliku wypisane są niezrozumiałe znaki, nie moge znaleźć błędu.

Zadanie polega na tym, że wczytuję z plików źródłowych słowa oraz słowa szyfrujące. Następnie do każdej literki danego słowa dodaje odpowiednia literke slowa szyfrujacego otrzymujac nowe slowo ktore wypisuje do pliku(w zadaniu slowa szyfrujace sa inaczej ponumerowane stad w algorytmie odejmuje 64).

C/C++
#include<string>
#include<vector>
#include<fstream>
#include<iostream>
using namespace std;

string szyfrowanie( string sl, string kl )
{
    string wyjscie;
    wyjscie.resize( sl.length() );
    int slint, klint, wyniczek;
   
    for( int i = 0; i < sl.length(); i++ ) //algorytm szyfrowania wczytuje 2 stringi, zamienia kazda literke na int, wykonuje dzialanie
    {
        slint = sl[ i ];
        klint = kl[ i ] - 64;
        wyniczek = slint + klint;
        if( wyniczek > 90 )
             wyniczek -= 26;
       
        wyjscie[ i ] =( char ) wyniczek;
    }
   
    return wyjscie;
}

int main()
{
    vector < string > slowa_w;
    vector < string > klucze_w;
    vector < string > wynik_w;
    vector < string >::iterator it;
    string pomocniczy;
    ifstream slowa, klucze;
    ofstream wynik4a;
   
   
   
    slowa.open( "slowa.txt" );
    while( !slowa.eof() )
    { getline( slowa, pomocniczy );
        slowa_w.push_back( pomocniczy );
    }
    slowa.close(); //zestawy danych wczytuje do wektorow z dwoch plikow
   
   
   
    klucze.open( "klucze.txt" );
    { getline( klucze, pomocniczy );
        klucze_w.push_back( pomocniczy );
    }
    klucze.close();
   
   
   
    for( it = slowa_w.begin(); it != slowa_w.end(); ++it )
    {
        pomocniczy = szyfrowanie(( * it ), klucze_w[ it - slowa_w.begin() ] ); //z poszczegolnych wektorow biore po slowie
        wynik_w.push_back( pomocniczy ); //nastepnie pomocniczemu stringowi przypisuje zaszyfrowane slowo
    } //pomocniczy string wrzucam do wektora z wynikami
   
   
    wynik4a.open( "wynik4a.txt" );
    for( it = wynik_w.begin(); it != wynik_w.end(); ++it )
    {
        wynik4a <<( * it ); //wypisuje wektor do pliku          
    }
    wynik4a.close();
   
   
   
   
   
   
    system( "PAUSE" );
    return 0;
   
}
link do zadania : http:/​/pobieranie.dlastudenta.pl​/matura/2012/informatyka​/pr_a2.pdf
link do danych wejsciowych : http:/​/pobieranie.dlastudenta.pl​/matura/2012/informatyka​/dane_pr.rar

Pozdrawiam, shadow193.
P-109824
Monika90
» 2014-05-12 22:01:45
C/C++
klucze.open( "klucze.txt" );
{ getline( klucze, pomocniczy );
    klucze_w.push_back( pomocniczy );
}
klucze.close();
Tu, to  chyba miała być pętla?

Swoją drogą, taka pętla
C/C++
while( !slowa.eof() )
{ getline( slowa, pomocniczy );
    slowa_w.push_back( pomocniczy );
}
prawidłowa nie jest.
P-109832
« 1 »
  Strona 1 z 1