2017-05-13 1 views
-2

je en train d'écrire un simple morceau de code C++ pour imprimer l'entrée jusqu'à ce que l'entrée n'est pas 42. Voici mon code:C++: erreurs de compilation avec std :: endl et opérateur >>

#include <iostream> 

using namespace std; 

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

Toutefois, lorsque Je compile, je reçois une liste d'erreurs:

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; 

Je ne l'ai jamais rencontré une telle erreur, ni avant, je suis incapable de le déboguer étant donné le simple bloc de code que je vous écris. J'utilise le compilateur g ++ installé sur le système ubuntu.

+0

Retirez le 'endl' dans l'instruction' 'cin' – Cherubim

+0

Le endl' ne fonctionne pas avec' cin'. Essayez 'cin.ignore (10000, '\ n')' –

+0

Le titre de votre question, le code et le message d'erreur sont incohérents. –

Répondre

1

Retirez le endl de la déclaration cin:

cin >> inp; 

Au lieu de:

cin >> inp >> endl; 
+0

Etes-vous sûr de ce que vous dites ou non? –

1

Il n'y a pas de surcharge du manipulateur std::endl E/S pour std::istream que le message d'erreur indique clairement.

Aussi, vous devez gérer les erreurs lors de la prise d'entrée, sinon votre boucle fonctionnera toujours:

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

Comment avez-vous ignoré l'entrée incorrecte? désolé, mais je suis nouveau à C++ – kartikeykant18

+0

@ kartikeykant18 Typo, désolé. Je l'ai ignoré en appelant 'clear()' et 'ignore()'. –

+0

Si j'ai écrit l'instruction 'using namespace std' dois-je écrire std :: dans les arguments' ignore() '? – kartikeykant18