为什么这段代码没有编译。我得到的错误信息是
In function 'int main()':
10:15: error: cannot bind 'std::istream {aka std::basic_istream<char>}' lvalue to 'std::basic_istream<char>&&'
In file included from /usr/include/c++/4.9/iostream:40:0,
from 1:
/usr/include/c++/4.9/istream:872:5: note: initializing argument 1 of 'std::basic_istream<_CharT, _Traits>& std::operator>>(std::basic_istream<_CharT, _Traits>&&, _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = const char [8]]'
operator>>(basic_istream<_CharT, _Traits>&& __is, _Tp& __x)
^
#include <iostream>
using namespace std;
int main()
{
int MAXTEMPS;
int i, temp [MAXTEMPS];
for(i=0; i< MAXTEMPS; i++)
{
cout<<"Enter a Temperature:" ;
cin>> "Temp[1]";
}
cout<<endl;
for(i=0; i<MAXTEMPS; i++)
cout<<"Temperature "<<i<<" is" <<temp[i]<<endl;
return 0;
}
原始代码:
答案 0 :(得分:2)
您出于某种原因尝试cin
为文字
cin >> "Temp[1]";
删除引号,使用正确的大小写,并使用索引变量i
。
cin >> temp[i];
答案 1 :(得分:0)
首先,变量:
reallyDone
未初始化,正如原始代码所示,它必须等于5。
int MAXTEMPS;
其次,您无法使用字符串文字获得输入(cin),并且您不会使用一个索引来获取所有输入(temp [1]),所以这样做:
int MAXTEMPS = 5;
您还应该考虑在输入块时使用制表符(在我看来更好地理解代码)