Witam, piszę funkcję która ma otwierać plik tekstowy, wyszukać odpowiedni kod rozpoznawczy ustalony przeze mnie, wczytać każdą linijkę tekstu do zmiennej puki nie napotka kodu informującego o zakończeniu danego bloku tekstu i zwrócenie tekstu ze zmiennej, który zamierzam wykorzystać przez inną funkcję. Problem polega na tym (a raczej tak mi się wydaje bo nie rozumiem do końca błędów z kompilatora), że nie mogę użyć jako argumentu funkcji zmiennej typu fstream. Sama funkcja kompiluje się lecz gdy jej użyję sypie mi się mnóstwo błędów. Przeszukałem już chyba cały internet, robiłem sobie przerwę w pracy i nic nie mogłem znaleźć co mogłoby być nie tak.
Oto moja funkcja
string read(fstream file, string name, string type, string nb) {
file.open(name.c_str(), ios::out);
if(file.good()==true) {
string text = "#"+type+"# "+nb;
string text2;
string text3;
if(!file.fail()) {
if(getline(file, text2)) {
if(text==text2) {
do {
getline(file, text2);
text3 = text3+text2;
}while(text2 != "#end#");
file.close();
return text3;
}
}
} else {
system("cls");
cout<<"Error #02\n";
system("Pause");
file.close();
exit(0);
}
} else {
system("cls");
cout<<"Error #01\n";
system("Pause");
file.close();
exit(0);
}
return 0;
}
A to jej wywołanie
cout<<read(language, "Language\Polski.txt", "text", "1");
A kompilator wywala mi takie błędy
||=== Build: Debug in Terminal RPG (compiler: GNU GCC Compiler) ===|
C:\Users\Marci\OneDrive\Projekty\Terminal RPG\Terminal RPG Project\main.cpp||In function 'int main()':|
C:\Users\Marci\OneDrive\Projekty\Terminal RPG\Terminal RPG Project\main.cpp|19|warning: unknown escape sequence: '\P'|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\ios_base.h|786|error: 'std::ios_base::ios_base(const std::ios_base&)' is private|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\bits\basic_ios.h|66|error: within this context|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\fstream|779|note: synthesized method 'std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)' first required here |
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\streambuf|802|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\lib\gcc\mingw32\4.9.2\include\c++\fstream|72|error: within this context|
C:\Program Files (x86)\CodeBlocks\MinGW\lib\gcc\mingw32\4.9.2\include\c++\fstream|779|note: synthesized method 'std::basic_filebuf<char>::basic_filebuf(const std::basic_filebuf<char>&)' first required here |
C:\Users\Marci\OneDrive\Projekty\Terminal RPG\Terminal RPG Project\main.cpp||In function 'int main()':|
C:\Users\Marci\OneDrive\Projekty\Terminal RPG\Terminal RPG Project\main.cpp|19|note: synthesized method 'std::basic_fstream<char>::basic_fstream(const std::basic_fstream<char>&)' first required here |
C:\Users\Marci\OneDrive\Projekty\Terminal RPG\Terminal RPG Project\game.h|44|error: initializing argument 1 of 'std::string readi(std::fstream, std::string, std::string, std::string)'|
||=== Build failed: 5 error(s), 1 warning(s) (0 minute(s), 0 second(s)) ===|
Sam już sobie z tym nie poradzę. Proszę o pomoc.