CTRL85 Temat założony przez niniejszego użytkownika |
Obsługa plików, przepisywanie danych z jednego do drugiego pliku » 2017-01-03 16:41:54 Mam za zadanie posortować dane w pliku, które są w formacie: 2 //liczba wg której mam sortować jakiś napis c 12 233 4 4 1 2 3 4 5 1 2 3 4 5 5 6 7 8 No i mam pewien problem, a mianowicie nieskończoną pętlę, część kodu zamieszczam poniżej: int TempNumber = 0; bool writed = false; t1.clear(); t1.flush(); t1.seekg( 0 );
t2.close(); t2.open( temp2.c_str(), ios::in | ios::out | ios::trunc ); t2.clear(); t2.flush(); t2.seekg( 0 ); while( !t1.eof() ) { t1 >> TempNumber; if( TempNumber < number ||( TempNumber > number && writed == true ) ) { t2 << TempNumber; for( int i = 0; i < 7; i++ ) { getline( t1, temp ); t2 << temp << "\n"; } } if( TempNumber > number && writed == false ) { writed = true; t2 << number; for( int i = 0; i < 7; i++ ) { getline( f1, temp ); t2 << temp << "\n"; } } } Mianowicie, jeśli zostanie spełniony warunek drugi, to przy kolejym obiegu pętli i spełnieniu pierwszego if'a mam nieskończoną pętlę i do pliku zapisuje się nieskończenie wiele linii. |
|
mokrowski |
» 2017-01-03 16:59:46 W ten sposób tego nie zrobisz. Wczytaj linie podzielone na pola do vectora i posortuj. |
|
CTRL85 Temat założony przez niniejszego użytkownika |
» 2017-01-03 17:02:16 Nie mogę używać wskaźników, referencji, tablic, klas ani dynamicznego przydziału pamięci. |
|
mokrowski |
» 2017-01-03 17:20:53 Wiesz co, to lepiej napisz czego możesz użyć. Będzie łatwiej odpowiedzieć. Np. tablic możesz? Iteratora możesz? Sort'a także masz napisać sam czy możesz użyć z <algorithm>? string'i znane i możliwe do użycia? |
|
CTRL85 Temat założony przez niniejszego użytkownika |
» 2017-01-03 17:31:26 Z plików nagłówkowych to tylko iostream, fstream i string.
Tablic też nie można.
Zastanawia mnie strasznie czemu mój pomysł nie działa. |
|
mokrowski |
» 2017-01-03 17:54:50 Ok, w kodzie masz taki bałagan i tyle błędów że nie wiadomo do czego się odnieść. Po pierwsze proszę opisz dokładniej co chcesz uzyskać. Te 2 to 2 kolumna ma być? Co to jest "c"? Podaj jakieś przykłady prawidłowego działania programu. Postaram się pomóc. |
|
CTRL85 Temat założony przez niniejszego użytkownika |
» 2017-01-03 18:05:44 W jednym pliku mam powiedzmy takie dane: 3 //wg tego sortuje napis trzeci c 1 234 56.789 0 12 3.45 1 6 -7.89 1 123 0 1 //wg tego sortuje napis pierwszy a 0 123 12.11 0 12 1.12 0 2 -2.22 0 121 0 2 //wg tego sortuje napis drugi b 1 334 3.3444 1 34 3.43 1 4 -4.34 1 234 0
Mam napisać funkcję, która posortuje zawartość tego pliku, bez użycia klas, pamięci dynamicznej, typów wskaźnikowych i referencyjnych, tablic, mając do dyspozycji z plików nagłówkowych iostream, fstream, string. Mam do dyspozycji dwa dodatkowe pliki na których mogę działać. Chciałem to zrobić na zasadzie - pobierz liczbę i jeśli jest większa niż największa dotychczasowa, to po prostu przepisać do drugiego pliku - jeśli jest mniejsza niż najmniejsza dotychczas, to zawartość drugiego przepisać do trzeciego, wstawić blok danych na początek do drugiego i zawartość trzeciego przepisać do drugiego - jeśli jest pomiędzy, to przenieść część danych z drugiego do trzeciego, wstawi tam aktualny blok danych, dopisać resztę |
|
mokrowski |
» 2017-01-03 18:14:43 Proszę: pliki danych -> wynik
Bez żadnych komentarzy. Bo nie mogę zrozumieć co i jak chcesz sortować. |
|
« 1 » 2 |