2017-05-13 10 views
-2

ich ein einfaches Stück C++ Code zu schreiben wurde Eingabe auszudrucken, bis der Eingang ist nicht 42. Hier ist mein Code:C++: Kompilierungsfehlern mit std :: endl und Operator >>

#include <iostream> 

using namespace std; 

int main(){ 
    while(true){ 
     int inp; 
     cin >> inp >> endl; 
     if(inp == 42){ 
      break; 
     } 
     cout << inp << endl; 
    } 
    return 0; 
} 

jedoch, wenn ich kompilieren, erhalte ich eine Liste von Fehlern:

testlife.cpp: In function ‘int main()’: 
testlife.cpp:9:14: error: no match for ‘operator>>’ (operand types are ‘std::basic_istream<char>::__istream_type {aka std::basic_istream<char>}’ and ‘<unresolved overloaded function type>’) 
    cin >> inp >> endl; 
    ~~~~~~~~~~~^~~~~~~ 
In file included from /usr/include/c++/6/iostream:40:0, 
       from testlife.cpp:2: 
/usr/include/c++/6/istream:120:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(__istream_type& (*__pf)(__istream_type&)) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:120:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&) {aka std::basic_istream<char>& (*)(std::basic_istream<char>&)}’ 
/usr/include/c++/6/istream:124:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>] 
     operator>>(__ios_type& (*__pf)(__ios_type&)) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:124:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&) {aka std::basic_ios<char>& (*)(std::basic_ios<char>&)}’ 
/usr/include/c++/6/istream:131:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(ios_base& (*__pf)(ios_base&)) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:131:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘std::ios_base& (*)(std::ios_base&)’ 
/usr/include/c++/6/istream:168:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(bool& __n) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:168:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘bool&’ 
/usr/include/c++/6/istream:172:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>] 
     operator>>(short& __n); 
     ^~~~~~~~ 
/usr/include/c++/6/istream:172:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘short int&’ 
/usr/include/c++/6/istream:175:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(unsigned short& __n) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:175:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘short unsigned int&’ 
/usr/include/c++/6/istream:179:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>] 
     operator>>(int& __n); 
     ^~~~~~~~ 
/usr/include/c++/6/istream:179:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘int&’ 
/usr/include/c++/6/istream:182:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(unsigned int& __n) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:182:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘unsigned int&’ 
/usr/include/c++/6/istream:186:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(long& __n) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:186:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘long int&’ 
/usr/include/c++/6/istream:190:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(unsigned long& __n) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:190:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘long unsigned int&’ 
/usr/include/c++/6/istream:195:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(long long& __n) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:195:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘long long int&’ 
/usr/include/c++/6/istream:199:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(unsigned long long& __n) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:199:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘long long unsigned int&’ 
/usr/include/c++/6/istream:214:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(float& __f) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:214:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘float&’ 
/usr/include/c++/6/istream:218:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(double& __f) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:218:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘double&’ 
/usr/include/c++/6/istream:222:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(long double& __f) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:222:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘long double&’ 
/usr/include/c++/6/istream:235:7: note: candidate: std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>] 
     operator>>(void*& __p) 
     ^~~~~~~~ 
/usr/include/c++/6/istream:235:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘void*&’ 
/usr/include/c++/6/istream:259:7: note: candidate: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>] 
     operator>>(__streambuf_type* __sb); 
     ^~~~~~~~ 
/usr/include/c++/6/istream:259:7: note: no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘std::basic_istream<char>::__streambuf_type* {aka std::basic_streambuf<char>*}’ 
In file included from /usr/include/c++/6/string:53:0, 
       from /usr/include/c++/6/bits/locale_classes.h:40, 
       from /usr/include/c++/6/bits/ios_base.h:41, 
       from /usr/include/c++/6/ios:42, 
       from /usr/include/c++/6/ostream:38, 
       from /usr/include/c++/6/iostream:39, 
       from testlife.cpp:2: 
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note: candidate: template<class _CharT, class _Traits, class _Alloc> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, std::__cxx11::basic_string<_CharT, _Traits, _Alloc>&) 
    operator>>(basic_istream<_CharT, _Traits>& __in, 
    ^~~~~~~~ 
/usr/include/c++/6/bits/basic_string.tcc:1437:5: note: template argument deduction/substitution failed: 
testlife.cpp:9:17: note: couldn't deduce template parameter ‘_Alloc’ 
    cin >> inp >> endl; 
       ^~~~ 
In file included from /usr/include/c++/6/iostream:40:0, 
       from testlife.cpp:2: 
/usr/include/c++/6/istream:799:5: note: candidate: std::basic_istream<_CharT2, _Traits2>& std::operator>>(std::basic_istream<_CharT2, _Traits2>&, _CharT2*) [with _CharT2 = char; _Traits2 = std::char_traits<char>; _CharT = char; _Traits = std::char_traits<char>] 
    operator>>(basic_istream<char>& __in, char* __s); 
    ^~~~~~~~ 
/usr/include/c++/6/istream:799:5: note: no known conversion for argument 2 from ‘<unresolved overloaded function type>’ to ‘char*’ 
In file included from /usr/include/c++/6/istream:934:0, 
       from /usr/include/c++/6/iostream:40, 
       from testlife.cpp:2: 
/usr/include/c++/6/bits/istream.tcc:923:5: note: candidate: std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&, _CharT&) [with _CharT = char; _Traits = std::char_traits<char>] 
    operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c) 
    ^~~~~~~~ 
/usr/include/c++/6/bits/istream.tcc:923:5: note: no known conversion for argument 2 from ‘<unresolved overloaded function type>’ to ‘char&’ 
In file included from /usr/include/c++/6/iostream:40:0, 
       from testlife.cpp:2: 
/usr/include/c++/6/istream:756:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char&) 
    operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c) 
    ^~~~~~~~ 
/usr/include/c++/6/istream:756:5: note: template argument deduction/substitution failed: 
testlife.cpp:9:17: note: cannot convert ‘std::endl’ (type ‘<unresolved overloaded function type>’) to type ‘unsigned char&’ 
    cin >> inp >> endl; 
       ^~~~ 
In file included from /usr/include/c++/6/iostream:40:0, 
       from testlife.cpp:2: 
/usr/include/c++/6/istream:761:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char&) 
    operator>>(basic_istream<char, _Traits>& __in, signed char& __c) 
    ^~~~~~~~ 
/usr/include/c++/6/istream:761:5: note: template argument deduction/substitution failed: 
testlife.cpp:9:17: note: cannot convert ‘std::endl’ (type ‘<unresolved overloaded function type>’) to type ‘signed char&’ 
    cin >> inp >> endl; 
       ^~~~ 
In file included from /usr/include/c++/6/iostream:40:0, 
       from testlife.cpp:2: 
/usr/include/c++/6/istream:803:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, unsigned char*) 
    operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s) 
    ^~~~~~~~ 
/usr/include/c++/6/istream:803:5: note: template argument deduction/substitution failed: 
testlife.cpp:9:17: note: cannot convert ‘std::endl’ (type ‘<unresolved overloaded function type>’) to type ‘unsigned char*’ 
    cin >> inp >> endl; 
       ^~~~ 
In file included from /usr/include/c++/6/iostream:40:0, 
       from testlife.cpp:2: 
/usr/include/c++/6/istream:808:5: note: candidate: template<class _Traits> std::basic_istream<char, _Traits>& std::operator>>(std::basic_istream<char, _Traits>&, signed char*) 
    operator>>(basic_istream<char, _Traits>& __in, signed char* __s) 
    ^~~~~~~~ 
/usr/include/c++/6/istream:808:5: note: template argument deduction/substitution failed: 
testlife.cpp:9:17: note: cannot convert ‘std::endl’ (type ‘<unresolved overloaded function type>’) to type ‘signed char*’ 
    cin >> inp >> endl; 
       ^~~~ 
In file included from /usr/include/c++/6/iostream:40:0, 
       from testlife.cpp:2: 
/usr/include/c++/6/istream:924:5: note: candidate: template<class _CharT, class _Traits, class _Tp> std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) 
    operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x) 
    ^~~~~~~~ 
/usr/include/c++/6/istream:924:5: note: template argument deduction/substitution failed: 
testlife.cpp:9:17: note: couldn't deduce template parameter ‘_Tp’ 
    cin >> inp >> endl; 

ich habe noch nie solche Fehler aufgetreten ist, noch kann ich nicht es der einfache Code-Block gegeben debuggen, ich schreibe. Ich verwende den g ++ - Compiler, der auf dem ubuntu-System installiert ist.

+0

Entfernen Sie die '' endl' in cin' Anweisung – Cherubim

+0

Die 'endl' nicht mit' cin' funktioniert. Versuchen Sie 'cin.ignore (10000, '\ n')' –

+0

Ihr Fragentitel, Code und Fehlermeldung sind inkonsistent. –

Antwort

1

die Endl aus der cin Anweisung entfernen:

cin >> inp; 

Statt:

cin >> inp >> endl; 
+0

Sind Sie sicher, was Sie sagen oder nicht? –

1

ist Es gibt keine Überlastung des std::endl I/O-Manipulator für std::istream als die Fehlermeldung eindeutig fest.

Auch sollten Sie Fehler behandeln, wenn die Eingabe nehmen, sonst wird Ihre Schleife immer laufen wird:

int main(){ 
    while(true){ 
     int inp; 
     if(cin >> inp && inp == 42) { 
      break; 
     } 
     else { 
      cin.clear(); 
      cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); 
      continue; 
     } 
     cout << inp << endl; 
    } 
    return 0; 
} 
+0

Wie haben Sie die falsche Eingabe ignoriert? Entschuldigung, aber ich bin neu in C++ – kartikeykant18

+0

@ kartikeykant18 Typo, tut mir leid. Ich habe es ignoriert, indem ich 'clear()' und 'ignore()' aufgerufen habe. –

+0

Wenn ich die Anweisung 'using namespace std' geschrieben habe, muss ich std :: in die' ignore() 'Argumente schreiben? – kartikeykant18

Verwandte Themen