x-kom hosting

Nie rozumiem błędów przy kompilacji

Cansisti
utworzono
utworzono

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
komentarz

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.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Strona wykorzystuje pliki cookies w celu prawidłowego świadczenia usług i wygody użytkowników. Warunki przechowywania i dostępu do plików cookies możesz zmienić w ustawieniach przeglądarki.