pawajoro Temat założony przez niniejszego użytkownika |
Problemy z programem » 2011-12-27 16:31:14 Mam problem z programem: #include <iostream> #include <fstream> using namespace std;
int linijki( std::fstream plik ) { if( plik.good() ) { string napis; cout << "Zawartosc pliku:" << endl; int c; while( !plik.eof() ) { getline( plik, napis ); c++; } return( c ); } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl; return 0; }
int main() { fstream plik; plik.open( "C:/config.txt", ios::in ); if( plik.good() ) cout << linijki( plik ); plik.close(); } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl;
return 0 }
Niestety kompilator informuje mnie Compiling: C:\CBScripts\test.file.cpp In file included from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ios:39, from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ostream:40, from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iostream:40, from C:\CBScripts\test.file.cpp:1: d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h: In copy constructor 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)': d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h:790: error: 'std::ios_base::ios_base(const std::ios_base&)' is private d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:47: error: within this context d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)': d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:87: note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/streambuf: In copy constructor 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)': d:\p\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 d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:78: error: within this context d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)': d:\p\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:\CBScripts\test.file.cpp: In function 'int main()': C:\CBScripts\test.file.cpp:28: 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:\CBScripts\test.file.cpp:28: error: initializing argument 1 of 'int linijki(std::fstream)' C:\CBScripts\test.file.cpp: At global scope: C:\CBScripts\test.file.cpp:30: error: expected unqualified-id before 'else' C:\CBScripts\test.file.cpp:31: error: expected unqualified-id before 'return' C:\CBScripts\test.file.cpp:32: error: expected declaration before '}' token Process terminated with status 1 (0 minutes, 0 seconds) 8 errors, 0 warnings
Co należy zrobić? |
|
pekfos |
» 2011-12-27 16:59:06 .. Zobacz jak ci się kod formatuje. Za dużo '}' chociaż to mogłeś już przeczytać w logu.. |
|
pawajoro Temat założony przez niniejszego użytkownika |
» 2011-12-27 17:06:13 Problem z klamrą rozwiązany, ale dalej daje mi to: Compiling: C:\CBScripts\test.file.cpp In file included from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ios:39, from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ostream:40, from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iostream:40, from C:\CBScripts\test.file.cpp:1: d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h: In copy constructor 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)': d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h:790: error: 'std::ios_base::ios_base(const std::ios_base&)' is private d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:47: error: within this context d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)': d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:87: note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/streambuf: In copy constructor 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)': d:\p\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 d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:78: error: within this context d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)': d:\p\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:\CBScripts\test.file.cpp: In function 'int main()': C:\CBScripts\test.file.cpp:29: 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:\CBScripts\test.file.cpp:29: error: initializing argument 1 of 'int linijki(std::fstream)' Process terminated with status 1 (0 minutes, 0 seconds) 5 errors, 0 warnings
|
|
pekfos |
» 2011-12-27 17:11:36 przekazuj obiekt fstream przez referencje. |
|
pawajoro Temat założony przez niniejszego użytkownika |
» 2011-12-27 17:23:44 No, skompilował się, ale wylatują mi kosmiczne wartości. W tamtym pliku jest linijek 2113, a program zwraca ich 4530513. |
|
ison |
» 2011-12-27 17:35:04 |
|
pawajoro Temat założony przez niniejszego użytkownika |
» 2011-12-28 16:52:43 Mam teraz taki problem: #include <iostream> #include <fstream> #include <string> using namespace std;
int linijki( fstream & plik ) { if( plik.good() ) { string napis; int c = - 1; while( !plik.eof() ) { getline( plik, napis ); c++; } return( c ); } else cout << "Error! Nie udalo przetworzyc sie pliku!" << endl; return 0; }
void tablica( fstream & plik, string napis[], int i ) { int c = 0; while( c < i ) { getline( plik, napis[ c ] ); c++; } }
int szukajznacznika( string table ) { int c = - 1; size_t znalezionaPozycja; { c++; znalezionaPozycja = table[ c ].find( "kuid-table {" ); } while( znalezionaPozycja != string::npos ) return c; }
int main() { fstream plik; plik.open( "C:/config.txt", ios::in ); if( plik.good() ) { int i = linijki( plik ); string napis[ i + 1 ]; tablica( plik, napis, i ); int a =( szukajznacznika( napis ) ); int k = i - a; string kuidy[ k ]; plik.close(); } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl; return 0; }
A kompilator informuje mnie: Compiling: C:\CBScripts\test.file.cpp C:\CBScripts\test.file.cpp: In function 'int szukajznacznika(std::string)': C:\CBScripts\test.file.cpp:40: error: request for member 'find' in 'table.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((unsigned int)c))', which is of non-class type 'char' C:\CBScripts\test.file.cpp: In function 'int main()': C:\CBScripts\test.file.cpp:54: error: conversion from 'std::string*' to non-scalar type 'std::string' requested Process terminated with status 1 (0 minutes, 0 seconds) 2 errors, 0 warnings
|
|
Mrovqa |
» 2011-12-28 18:21:08 int szukajznacznika( string table ) { int c = - 1; size_t znalezionaPozycja; { c++; znalezionaPozycja = table[ c ].find( "kuid-table {" ); } while( znalezionaPozycja != string::npos ) return c; }
1. Wyrażenie table[ c ] jest typu char , a nie string ... |
|
« 1 » 2 |