Gdzie jest błąd - strumień na plik.
Ostatnio zmodyfikowano 2009-05-02 19:39
GoldWolf Temat założony przez niniejszego użytkownika |
Gdzie jest błąd - strumień na plik. » 2009-05-02 18:49:24 Taki kodzik: #include <cstdlib> #include <iostream> #include <fstream> #include <string>
void testuj_strumien() { using namespace std; ofstream strumien; ifstream strumien1; string bufor, bufor1; int liczba; char * znak; strumien1.open( "pomoc.txt", ios::in ); if( strumien1.is_open() ) { while( !strumien1.eof() ) { getline( strumien1, bufor1 ); sscanf( bufor1.c_str(), "%d", & liczba ); cout << "Co tam w buf:\n" << bufor1 << endl; ( ++liczba ); itoa( liczba, znak, 10 ); bufor1 = znak; if( strumien1.peek() != - 1 ) bufor1 += "\n"; bufor += bufor1; if( !strumien1.peek() == EOF ) if( strumien1.peek() == ' ' ) { bufor += " \n"; getline( strumien1, bufor1 ); bufor1.clear(); } } } strumien1.close(); cout << "\n"; strumien.open( "pomoc1.txt", ios::out ); if( strumien.is_open() ) { strumien << bufor; bufor.clear(); } strumien.close(); strumien.clear(); } void testuj1_strumien() { using namespace std; fstream strumien; string bufor, bufor1; int liczba; char * znak; strumien.open( "pomoc1.txt", ios::in | ios::out ); if( strumien.is_open() ) { while( !strumien.eof() ) { getline( strumien, bufor1 ); sscanf( bufor1.c_str(), "%d", & liczba ); cout << "Co tam w buf:\n" << bufor1 << endl; ( ++liczba ); itoa( liczba, znak, 10 ); bufor1 = znak; if( strumien.peek() != - 1 ) bufor1 += "\n"; bufor += bufor1; if( !strumien.peek() == EOF ) if( strumien.peek() == ' ' ) { bufor += " \n"; getline( strumien, bufor1 ); bufor1.clear(); } } } cout << "\n\n" << bufor << endl; strumien.clear(); strumien.seekg( 0 ); strumien << bufor; strumien.close(); strumien.clear(); bufor.clear(); }
int main() { testuj_strumien(); testuj1_strumien(); system( "PAUSE" ); return EXIT_SUCCESS; }
W pliku tekstowym jest coś takiego: 5 6 7 7 4 5 3
2 4 5 3 1 3 5 |
|
DejaVu |
» 2009-05-02 19:21:44 Przydałby się jakiś słowno muzyczny opis co konkretnie nie działa. |
|
GoldWolf Temat założony przez niniejszego użytkownika |
» 2009-05-02 19:27:55 Gdybym to wiedział to bym powiedział jejejeeeeeeee!
Utwórz plik pomoc.txt wrzuć co jest wyżej, skopiuj do odpowiedniego folderu skompiluj i zobacz. Kompilator milczy. Program się wywala. Jak zahaszujesz jedną z funkcji będzie git(ale oczywiście nie o to chodzi). |
|
DejaVu |
» 2009-05-02 19:34:55 Źródło błędu: char * znak; Rozwiązanie problemu: char znak[ 20 ]; |
|
GoldWolf Temat założony przez niniejszego użytkownika |
» 2009-05-02 19:40:36 Nie wpadłbym na to. To jest tak jak się z gotowych rozwiązań korzysta.Zrób z tego char znak[12];A ja zrobiłem znak[2] i jest ok. |
|
manfred |
» 2009-05-02 19:39:08 char *znak; [...] itoa(liczba, znak, 10); |
Zdziwiłbym się gdyby to się NIE wywalało. Można wiedzieć, na co wskazuje znak? Zrób z tego char znak[12]; @up: można wiedzieć, czemu 20? 10 cyfr + znak + NULL to 12. |
|
« 1 » |