你好我在c ++程序中有25个双打的数组。当我将双打放入数组时,它们看起来像1.29839,然后当我尝试在数组中访问此数字时,它看起来像4.45053e-317。我有点像新手,真的迷失了。如果有人知道为什么会这样,你的帮助将不胜感激。
这是代码:
int main()
{
double los[25];
ifstream html;
html.open("tmp");
int count = 0;
while(html.good())
{
//cout << "in\n" ;
string line;
getline(html, line);
if(line.length() > 11)
{
string tmp = line.substr(10);
if(tmp.length() > 3)
{
string cmp = tmp.substr(2,2);
if(cmp == "lo")
{
//cout << "\n" << tmp << "\n";
double curr = atof(tmp.substr(13).c_str());
los[count] == curr;
cout << curr << "\n";
count++;
}
}
}
}
cout << count << "\n";
for(int i=0; i<25; i++)
{
double curr = los[i];
cout << curr << "\n";
}
}
答案 0 :(得分:3)
问题是你没有在阵列中分配任何东西。这条线
los[count] == curr;
只是评估它们是否相等,而不是将结果存储在任何地方,因此什么都不做。将其更改为仅使用一个=
。
要避免其中一些问题,请始终在启用警告的情况下进行编译(-W -Wall
是一个很好的起点)。你会得到一个警告,说明这条线无所事事,我很确定。
答案 1 :(得分:0)
将los[count] == curr;
更改为los[count] = curr;
目前,该行不像作业那样工作。