[C++] Zapis do pliku białych znaków
Ostatnio zmodyfikowano 2010-06-26 14:03
choke Temat założony przez niniejszego użytkownika |
[C++] Zapis do pliku białych znaków » 2010-06-25 20:23:30 Witam poniżej przedstawię kod mojego programu chodzi mi o zapis do pliku w case 2 wszytko działa tylko gdy pisze imię i nazwisko np Kamil Nowak zapisuje sie tylko Kamil i jest tak ze wszystko zapisuje się do napotkania białego znaku i nie wiem jak to robić #include <cstdlib> #include <iostream> #include <string> #include <fstream>
using namespace std;
int main() { int wybor = 0; while( wybor < 5 ) { cout << "+---------------------------------------------+" << endl; cout << "|Ksiazka adresowa ver 1.0 |" << endl; cout << "|Projekt na zaliczenie autor Piotr P |" << endl; cout << "+---------------------------------------------+\n\n" << endl; cout << "Menu wyboru:\n" << endl; cout << "1 Przegladaj ksiazke adresowa" << endl; cout << "2 Dodaj wpis do ksiazki adresowej" << endl; cout << "3 Usun wpisy z ksiazki adresowej" << endl; cout << "4 Wyjscie z programu\n" << endl; cout << "Twoj wybor: "; cin >> wybor; if( wybor == 1 || wybor == 2 || wybor == 3 || wybor == 4 || wybor == 5 ) { switch( wybor ) { case 1: { fstream plik; plik.open( "1.txt", ios::in ); if( plik.good() ) { string ka; while( !plik.eof() ) { getline( plik, ka ); cout << ka << endl; } plik.close(); } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl; } break; case 2: { string imie, ulica, miasto, tele; ofstream plik; plik.open( "1.txt", ios::out | ios::app ); { cout << "Imie i Nazwisko : "; cin >> imie; cout << "Ulica : "; cin >> ulica; cout << "Miasto : "; cin >> miasto; cout << "Nr telefonu : "; cin >> tele; } plik << imie << endl << ulica << endl << miasto << endl << tele << endl; plik.close(); } break; case 3: { fstream plik; plik.open( "1.txt", ios::trunc | ios::in | ios::out ); plik.close(); } break; case 4: return EXIT_SUCCESS; } system( "PAUSE" ); system( "cls" ); } else cout << "Nieprawidlowy wybor\n"; } system( "PAUSE" ); return EXIT_SUCCESS; } |
|
SeaMonster131 |
» 2010-06-25 21:16:34 Otaguj swój kod w "[ code src="C++" ] ... [ /code ]" (bez spacji):D A co do Twojego problemu musisz użyć np getline. Sposób użycia: string cos; cout << "Wpisz jakies zdanie: "; getline( cin, cos ); cout << "Napisales podane zdanie: " << cos;
No i to chyba wszystko :D |
|
choke Temat założony przez niniejszego użytkownika |
» 2010-06-25 21:20:51 Próbowałem już tak i nie przechodzi :/ |
|
SeaMonster131 |
» 2010-06-25 21:29:18 Faktycznie getline() nie działa prawidłowo :/ Zaraz dojde co w tym jest źle ;) (Lubie tak główkować :D)
#edit: nie możesz dać wszystko osobno? Wtedy nie miałbyś problemu :P
#edit2: Naprawde sorry, ale nie wiem czemu jest źle :/ Może sam na to wpadniesz albo ktoś mądrzejszy ode mnie napisze Ci co jest źle :D W każdym razie Powodzenia! :) |
|
SeaMonster131 |
» 2010-06-25 21:54:48 Yeah! Działa :D:D:D Poczytałem na jakimś forum ;) Powinno być tak: cout << "Imie i Nazwisko : "; cin.ignore(); getline( cin, imie ); cout << "Ulica : "; getline( cin, ulica ); cout << "Miasto : "; getline( cin, miasto ); cout << "Nr telefonu : "; getline( cin, tele ); Przed pierwszym wywołanie "getline();" muisz dać "cin.ignore();" - i wszystko działa:D No to powodzenia! :) |
|
filipesq |
» 2010-06-26 10:21:21 A t nowość, ja nigdy nie dawałem ignor(), a getline() działało... |
|
ison |
» 2010-06-26 11:45:07 bo w tym programie najpierw używałeś cin a potem getline. W tym przypadku tam gdzie wczytywałeś przez getline wczytywany był enter który wcisnąłeś po wpisaniu pierwszej zmiennej. |
|
choke Temat założony przez niniejszego użytkownika |
» 2010-06-26 14:03:19 SeaMonster131 jesteś wielki tyle ile ja nad tym siedziałem to po prostu masakra :) Ale i tak mam jeszcze jedna sprawę chodzi o to ze jak już zapisze do pliku w takiej formie Pietraszek Piotr 1 Maja 54/83 Dabrowa Gornicza Nr tel : 793222367 ------------------ Kamil Nowak Legionow Polskich 137/8 Dabrowa Gornicza Nr tel : 515457789 ------------------ Bartek Lis Obroncow Montekasino 48/78 Sosnowiec Nr tel : 789545154
Mam zrobic case w którym będę kasował poszczególne rekordy zeby wyglądało tak : Pietraszek Piotr 1 Maja 54/83 Dabrowa Gornicza Nr tel : 793222367 ------------------ Kamil Nowak Legionow Polskich 137/8 Dabrowa Gornicza Nr tel : 515457789 ------------------
Bo inaczej będę mieć 3,5 :) bo za 4 będę miał przepis z jeszce jednego przedmitu :) |
|
« 1 » |