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

Problem z zapisem do Pliku

Ostatnio zmodyfikowano 2008-11-21 14:35
Autor Wiadomość
DeBugger
Proszę!
» 2008-11-20 18:17:11
Wyręczę Pana, Panie Piotrze!
Tak, ta funkcja nazywa się flush().

BTW.
Jak ktoś chce to tu ma Dokumentację.
P-2583
ruter
Temat założony przez niniejszego użytkownika
» 2008-11-21 05:50:33
OK Panowie wszytko działa pieknie nastomiast zmienna s zapisuje sie w dziwnych postaciach np przeksztalcony napis "Ruter" wyglada nastepujaco "rybfmxn" i zapisuje go do pliku w postaci samej litery "a" tylko... moj zapis teraz wyglada tak:
C/C++
cout << s[ i ] << endl; //zmienna wyswietlana w konsoli
ofstream outfile( "szyfr.txt" );

outfile << s[ i ] << endl; // s[i] bo tak wyglada koncowy zapis?
outfile.flush();

outfile.close();
}

Nie mam pojecia czy dobrze kombinuje z samym zapisej zmiennej "s(i)" czy tez samej "s"? bo w obu przypadkach zapis wyglada nie tak jak powinien a innych zmiennych nie ma ktore wskazywaly by na prawidlowy zapis. A nawet jesli zmienie zapis na "s" to zapisuje w tej samej postaci co napis poczatkowy czyli "Ruter".  Jakies wskazowki?
P-2590
lynx
» 2008-11-21 14:35:36
Piotr Szawdyński napisał:
Jeśli używasz tego samego fstream'a do otwierania różnych plików, musisz przed jego otwarciem wywołać linijkę:
plik.flush();

A ty zrobiłeś:
cout<<s[i]<<endl; //zmienna wyswietlana w konsoli
ofstream outfile ("szyfr.txt");

outfile<<s[i]<<endl;// s[i] bo tak wyglada koncowy zapis?
outfile.flush();

outfile.close();
}
Outfile.flush() powinieneś postawić przed otwarciem 2 pliku.
Sprawdź czy teraz działa dobrze i daj znać. ;)


Jeden błąd:
cin>>s[i];
 Wydje mi się że powinieneś to postawić przed pętlą, bo przecież nie chcemy wpisywać tekstu po jednym znaku.


Jeżeli chcesz wyświeltić jeden znak na jeden obrót pętli, a chyba tak chcesz zrobić to piszesz s[ i ]. Aha i jedna ważna regułka, nazwa tabeli jest jednocześnie wskaźnikiem do jej zerowego elementu. :)


/edit1:
Szczerze to do końca nie rozumiem twojego programu. Ja by zmienił to jakoś na odczyt zaszyfrowanego pliku i zapis pliku zaszyfrowanego. Skutkiem czego utworzyłbym dwie pętle for.



/edit2:
Już rozumiem ten programik zamienia zwykły tekst z pliku Notatki.txt na zaszyfrowany tekst do szyfr.txt. A więc ja bym w ogóle zamienił to:
cin>>s[i];
    //na to:
    cout<<s[i];
Po za tym przenieś to:

    plik.open("szyfr.txt",std::ios::out); //Zapis tekstu zaszyfrowanego
    plik<<s[i]<<endl;
przed pętlę for.

A to:
plik.close();
Na sam koniec, a do tego nie zapomnij że tekst jest zaszyfrowany. ;)



Jednak co do szyfrowania tekstu to mam pewien dylemat, ponieważ:
      int n=s[i];
      char c=n-13;
      std::cout<<c;
 nigdzie nie operuje na zmiennej s, a to przecież ona jest zawsze zapisywana do pliku. Popraw na:
       int n=s[i];
      char c=n-13;
      s[i] = c;
      std::cout<<c;




Pozdrawiam
P-2592
1 « 2 »
Poprzednia strona Strona 2 z 2