Cansisti utworzono 31 lipca 2012 utworzono 31 lipca 2012 O co chodzi? Dlaczego kompilator pokazuje mi błędy w innych plikach? Proszę o pomoc. Używam środowiska CodeBlocks i kompilatora GNU CCC. Mój kod: [CODE] #include <iostream> #include <fstream> #include <conio.h> #include <string> using namespace std; bool load ( fstream plik, int line ) { // Funkcja zwraca wartość konfiguracji, więcej przy return size_t dlugosc; string conf; string wiersz; bool konfiguracjaWiersza; getline( plik, wiersz ); // Pobieramy linie tekstu dlugosc = wiersz.size(); // Pobieramy długość wiersza dlugosc -= 4; // Zmniejszamy długość o 4 -> długość słowa true lub deny conf = wiersz.erase( 0, dlugosc ); // Do zmiennej conf przypisujemy wartosc true lub deny // Blok zwracający false gdy konfiguracja jest niepoprawna bool test = (conf == "true") || (conf == "deny"); if(test) cout << endl <<"Sukces - konfiguracja " << line << " jest poprawna."; // Gdy konfiguracja jest poprawna else { cout << endl << "Blad! Konfiguracja lini " << line << " jest niepoprawna!"; cout << endl << "Wczytuje linie jako \"deny\""; // Gdy niepoprawna return false; // Zwraca false gdy konfiguracja jest niepoprawna } // Koniec bloku if( conf == "true" ) { bool konfiguracjaWiersza = true; cout << endl << "Sukces - konfiguracja lini " << line << " to " << conf << "."; } else { bool konfiguracjaWiersza = false; cout << endl << "Sukces - konfiguracja lini " << line << " to " << conf << "."; } return konfiguracjaWiersza; // Zwraca true, jeśli w konfiguracji jest true, lub false jeśli - || - jest deny } int main() { std::fstream plik("konfiguracja.txt", std::ios::in | std::ios::out); // Otwieranie pliku // Sprawdzam czy plik zostal otwarty poprawnie bool czyPlikZostalOtwartyPoprawnie = plik.good(); if(czyPlikZostalOtwartyPoprawnie)\ cout << "Sukces - plik zostal otwarty."; else { cout << "Blad! - plik konfiguracyjny nie zostal otwarty!"; cout << endl << "Program zostanie zamkniety."; getch(); return 0; } // Koniec sprawdzania int lczn = 0; int ilosc = 3; // Ilość wierszy konfiguracji do wczytania WAŻNE + 1 int licznik = 0; // Licznik pętli do...while w funkcji main bool kfgrc[ilosc]; // Finalna tablica bool wyników ładowania // Pętla wykonująca funkcję load określoną ilość razy do { licznik++; // Zwiększamy licznik kfgrc[licznik] = load( plik, licznik ); } while( licznik < ilosc ); // Dopóki licznik jest mniejszy od ilosc (która jest o 1 większa od ilości wierszy) cout << "Konfiguracja pliku to w kolejności: "; do { cout << endl << kfgrc[lczn]; } while( lczn < ilosc ); return 0; } [/CODE] Błędy: [CODE] c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\streambuf|770|error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private| c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|78|error: within this context| c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\include\c++\iosfwd|87|note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here | C:\C++\conf try\Konfigurator.cpp||In function 'int main()':| C:\C++\conf try\Konfigurator.cpp|69|note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)' first required here | C:\C++\conf try\Konfigurator.cpp|69|error: initializing argument 1 of 'bool load(std::fstream, int)'| ||=== Build finished: 3 errors, 0 warnings ===| [/CODE]
leggo komentarz 31 lipca 2012 komentarz 31 lipca 2012 Deklaracja Twojej funkcji [b]load[/b] powinna wyglądać tak: [CODE] bool load (fstream& plik, int line) { // Funkcja zwraca wartość konfiguracji, więcej przy return [/CODE] Ponadto zapomniałeś również o liczniku w ostatniej pętli.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.