Operowanie na pliku
Ostatnio zmodyfikowano 2018-04-18 09:54
chriskck98 Temat założony przez niniejszego użytkownika |
Operowanie na pliku » 2018-04-15 20:46:30 Cześć, mam problem z modyfikacja pliku.Mianowicie chodzi o sprawdzenie czy w pliku sa jakies dane i potem wpisanie ich do tablicy. int pop( int & a ) { cin >> a; while( cin.fail() && a <= 0 ) { cin.clear(); cin.sync(); cin.ignore(); cin >> a; } return a; } int main() { int a; string dane, tablica[ 10 ]; fstream plik; plik.open( "text.txt" ); if( plik.good() ) { if( getline( plik, dane ) ) { cout << "\n\tNie musisz nic wpisywac!"; } else { cout << "\n\tWpisz 10 liczb do pliku: "; for( int i = 0; i < 10; i++ ) { plik << pop( a ) << endl; } } cout << "\n\n"; plik.close(); } else { cout << "\n\tNie ma takiego pliku!"; } int i = 0; fstream read; read.open( "text.txt" ); if( read.good() ) { cout << "Liczby z pliku w tablicy: "; while( !read.eof() ) { while( i < 10 ) { plik >> tablica[ i ]; cout << tablica[ i ] << " "; i++; } } read.close(); } cout << endl; return 0; }
|
|
darko202 |
» 2018-04-16 11:27:42 przypuszczam że podstawowym problemem jest sposób otwarcia pliku 1. nie używasz przełączników http://www.cplusplus.com/reference/fstream/fstream/open/http://cpp0x.pl/kursy/Kurs-C++/Obsluga-plikow/305std::fstream plik; plik.open( "nazwa_pliku.txt", std::ios::in | std::ios::out );
2. jeśli uda ci się otworzyć plik to czytasz tylko jedną linię if( plik.good() ) { if( getline( plik, dane ) )
a nie wiele jak się podejrzewam spodziewasz 3. zwróć uwagę na komentarz //zakładamy, że plik istnieje std::fstream plik( "nazwa_pliku.txt", std::ios::in );
4. naucz się techniki debugowania kodu będziesz mógł śledzić wykonanie programu linia po linii z obserwacją jak zachowują się stany wszystkich zmiennych |
|
chriskck98 Temat założony przez niniejszego użytkownika |
» 2018-04-16 20:25:59 Za wspomnienie o przełącznikach bardzo dziękuję, ale z getline w ifie chodzi o wczytanie linijki z pliku i jeśli takowa istnieje to program przechodzi dalej, w przeciwnym wypadku prosi o podanie liczb. Program zatrzymuje sie na wczytaniu liczb z pliku do tablicy. Jakby ktos podal rozwiazanie tej zagwozdki to bylbym bardzo wdzieczny! |
|
YooSy |
» 2018-04-16 21:45:31 Czego można spodziewać się w pliku? Sugeruję użyć debugera do zbadania sprawy. Jeszcze jedno: nie są sprawdzane niepowodzenia wczytywania liczb z pliku. Jeśli trafi się tam jakiś niepożądany znak, to dalsze wczytywanie weźmie w łeb. |
|
chriskck98 Temat założony przez niniejszego użytkownika |
» 2018-04-18 07:48:35 Chcę żeby ten program byl uniwersalny i jak będą cyfry w pliku, to zeby nic nie wpisywalo. Z tym niepozadnym znakiem to masz racje. Za początkujacy jednak jestem, zeby to rozwiazac. |
|
YooSy |
» 2018-04-18 09:54:08 |
|
« 1 » |