Narzew Temat założony przez niniejszego użytkownika |
[C++] error: no matching function for call to ‘getline(std::istream&, int&)’ » 2013-10-19 18:48:36 Witam. Mam taki kod:
#include <cstdlib> #include <iostream> #include <string> #include <limits>
using namespace std;
void clearcin() { cin.clear(); cin.ignore( numeric_limits < streamsize >::max(), '\n' ); }
void wczytaj_osobe( string & imie, string & nazwisko, int & wiek ) { do { cout << "Podaj imie: "; getline( cin, imie ); } while( cin.good() == false ); do { clearcin(); cout << "Podaj nazwisko: "; getline( cin, nazwisko ); } while( cin.good() == false ); do { clearcin(); cout << "Podaj wiek: "; getline( cin, wiek ); } while( cin.good() == false ); }
void wypisz_osobe( string imie, string nazwisko, int wiek ) { cout << "Imie: " << imie << endl << "Nazwisko: " << nazwisko << endl << "Wiek: " << wiek << endl; }
int main() { string imie[ 2 ]; string nazwisko[ 2 ]; int wiek[ 2 ]; for( int i = 0; i < 2; i++ ) { wczytaj_osobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); } for( int i = 0; i < 2; i++ ) { wypisz_osobe( imie[ i ], nazwisko[ i ], wiek[ i ] ); } return 0; }
Przy kompilacji mam serię mało zrozumiałych dla mnie błędów.
Output z terminala:
nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$ g++ -o std2.bin std2.cpp
std2.cpp: In function ‘void wczytaj_osobe(std::string&, std::string&, int&)’:
std2.cpp:27:19: error: no matching function for call to ‘getline(std::istream&, int&)’
std2.cpp:27:19: note: candidates are:
In file included from /usr/include/c++/4.7/string:55:0,
from /usr/include/c++/4.7/bits/locale_classes.h:42,
from /usr/include/c++/4.7/bits/ios_base.h:43,
from /usr/include/c++/4.7/ios:43,
from /usr/include/c++/4.7/ostream:40,
from /usr/include/c++/4.7/iostream:40,
from std2.cpp:2:
/usr/include/c++/4.7/bits/basic_string.tcc:1070:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _Alloc>&, _CharT)
/usr/include/c++/4.7/bits/basic_string.tcc:1070:5: note: template argument deduction/substitution failed:
std2.cpp:27:19: note: mismatched types ‘std::basic_string<_CharT, _Traits, _Alloc>’ and ‘int’
In file included from /usr/include/c++/4.7/string:54:0,
from /usr/include/c++/4.7/bits/locale_classes.h:42,
from /usr/include/c++/4.7/bits/ios_base.h:43,
from /usr/include/c++/4.7/ios:43,
from /usr/include/c++/4.7/ostream:40,
from /usr/include/c++/4.7/iostream:40,
from std2.cpp:2:
/usr/include/c++/4.7/bits/basic_string.h:2792:5: note: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::getline(std::basic_istream<_CharT, _Traits>&, std::basic_string<_CharT, _Traits, _Alloc>&)
/usr/include/c++/4.7/bits/basic_string.h:2792:5: note: template argument deduction/substitution failed:
std2.cpp:27:19: note: mismatched types ‘std::basic_string<_CharT, _Traits, _Alloc>’ and ‘int’
nikodem@nikodem-K8Upgrade-NF3:~/Pulpit/Workshop/C++$
Wersja GCC (G++): 4.7.3
Może mi ktoś powiedzieć co zrobiłem źle ? |