ruter Temat założony przez niniejszego użytkownika |
Problem z zapisem do Pliku » 2008-11-17 11:05:37 Rzeczywiście mam problemy z zapisem jakiegoś tekstu np. (Jola lojalna jola..) jak jest napisane w kursie "Strumień działa analogicznie do std::cin>>, co w konsekwencji oznacza, że za pomocą tej funkcji nie odczytamy żadnej informacji o białych znakach (tj. enter, tabulacja, spacja itp)." To racja nie zapisuje ani nie oczytuje tekstu ze spacjami... co mam w takim razie na to poradzic? kiedy chce zapisac dany tekst to program wariuje... |
|
DejaVu |
» 2008-11-17 12:51:38 operator >> wczytuje dane, natomiast operator << zapisuje dane. Temat mówi o zapisie danych, więc zapis powinien wyglądać tak: fstream plik( "dane.txt", std::ios::out ); plik << "jakiś tekst" << std::endl; plik.clode(); |
|
ruter Temat założony przez niniejszego użytkownika |
» 2008-11-17 13:10:33 Tak ale ja nie chce go wpisywać w samym kodzie tylko już w konsoli i chce aby to zapamietal. Mniej wiecej wyglada i działa to tak. Natomiast bez spacji. Funkcja wpisywania i zapisywania wygląda tak: case 1: { clrscr(); cout << "Podaj tekst: "; fstream plik; plik.open( "Notatki.txt", std::ios::out ); if( plik.good() == true ) { cin >> notka; plik.write( & notka[ 0 ], notka.length() ); } } break; Ale tak jak wpominalem dziala lecz bez spacji... Edit/ Domyślam się że chodzi o to?! clrscr(); fstream plik; ( "Notatki.txt", std::ios::out ); cout << "Podaj tekst: "; cin >> notka; plik << notka << std::endl; plik.close(); getch(); |
|
DejaVu |
» 2008-11-17 15:05:17 Pobiera wyraz: cin >> notka; Pobiera wiersz: getline( cin, notka ); Analogicznie na pliku: Pobiera wyraz: plik >> notka; Pobiera wiersz: getline( plik, notka ); |
|
ruter Temat założony przez niniejszego użytkownika |
» 2008-11-17 19:44:19 Ok. A jeśli chodzi o sam zapis łącznie z białymi znakami? chyba mnie to przerasta jednak :P |
|
DejaVu |
» 2008-11-17 22:44:03 Wypisanie zawartości zmiennej na ekran: cout << napis << endl; Zapisanie zawartości zmiennej do pliku: plik << napis << endl; |
|
ruter Temat założony przez niniejszego użytkownika |
» 2008-11-20 16:26:59 Odczyt działa znakomicie i samo kodowanie także... Ale czemu na końcu nie zapisuje mi wyniku do drugiego pliku szyfr.txt?? int main() { string s; fstream plik; plik.open( "Notatki.txt", ios::in ); if( plik.good() ) { while( !plik.eof() ) { getline( plik, s ); cout << s << endl; } plik.close(); } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl; for( int i = 0; i < s.size(); i++ ) { if( s[ i ] >= 'a' && s[ i ] <= 'm' ) { int n = s[ i ]; char c = n + 13; std::cout << c; } else if( s[ i ] >= 'A' && s[ i ] <= 'M' ) { int n = s[ i ]; char c = n + 13; std::cout << c; } else if( s[ i ] >= 'n' && s[ i ] <= 'z' ) { int n = s[ i ]; char c = n - 13; std::cout << c; } else if( s[ i ] >= 'N' && s[ i ] <= 'Z' ) { int n = s[ i ]; char c = n - 13; std::cout << c; } else cin >> s[ i ]; plik.open( "szyfr.txt", std::ios::out ); plik << s[ i ] << endl; plik.close(); } std::cout << "\n"; system( "pause" ); } btw. Jak mam usunac albo ukryc kod programu aby byl niedostepny po wyslaniu go komus? |
|
DejaVu |
» 2008-11-20 16:33:44 Jeśli używasz tego samego fstream'a do otwierania różnych plików, musisz przed jego otwarciem wywołać linijkę: plik.flush(); Nie jestem pewien czy dobrą nazwę funkcji napisałem Ci powyżej, ale jeśli nie będzie ona działała to sprawdzę w dokumentacji jakej powinieneś użyć. Wydaje mi się jednak, że powinna ona zadziałać. |
|
« 1 » 2 |