Rozdział 34 (zadanie 2)
Ostatnio zmodyfikowano 2017-01-17 08:43
krystiank907 Temat założony przez niniejszego użytkownika |
Rozdział 34 (zadanie 2) » 2017-01-16 17:20:02 Witam Męczę się już trochę z tym programem już teoretycznie wszystko działa tylko jak to zrobić aby po napotkaniu znaku wypisywał tylko komunikat "Napotkano znak w wierszu nr: " i nie wypisywało wyniku tylko przechodziło do nowej lini i od nowa liczyło?? #include <iostream> #include <string> #include <fstream> using namespace std;
bool Nowa( ifstream & plik ) { char cZnak; for(;; ) { plik.clear(); cZnak = plik.peek(); if( plik.fail() || plik.bad() ) return false; if( !isspace( cZnak ) ) return false; plik.get( cZnak ); if( plik.fail() || plik.bad() ) return false; if( cZnak == '\n' ) { return true; } } }
void wypisz( int wynik ) { cout << "Wynik: " << wynik << endl; } bool wczytajPlik( string nazwaPliku ) { ifstream plik; int a = 0; int i = 1; int wynik = 0; string wiersz; plik.open( nazwaPliku ); if( !plik.good() ) return false; while( !plik.eof() ) { plik >> a; if( plik.good() ) { wynik += a; if( Nowa( plik ) ) { wypisz( wynik ); wynik = 0; i++; } } if( plik.fail() ) { plik.clear(); char znak; plik >> znak; if( plik.good() ) { cout << " Znak w wierszu nr: " << i << " "; } } } plik.close(); return true; }
int main() { if( !wczytajPlik( "/Users/krystian-mac/Desktop/Dokumenty/C++/cpp/cpp/plik1.txt" ) ) cout << "Nie udalo sie otworzyc pliku!" << endl; return 0; }
Na ten czas tak to wygląda Wynik: 24 Znak w wierszu: 2 Wynik: 47 Wynik: 5 Wynik: 6 Program ended with exit code: 0
Z góry dziękuje za pomoc bo już trochę brakuje mi pomysłów |
|
darko202 |
» 2017-01-17 08:43:51 1. Trudno zrozumieć z czym masz konkretnie problem. opisz to dokładniej. dodając np. treść zadania. 2. Polecam zapoznanie się z techniką debug'owania programu musisz znaleźć dla twojego kompilatora odpowiednie informacje podobne do https://netbeans.org/kb/docs/cnd/debugging.htmlsprawdzasz wykonanie programu linia po linii - zatrzymując się, oglądając stany zmiennych |
|
« 1 » |