C++ 当我将fstream与for、C++;

C++ 当我将fstream与for、C++;,c++,C++,我需要在外部文件中写入循环的输出,但我收到不稳定的值,我的程序是: #include <iostream> #include <fstream> using namespace std; int main() { ofstream outfile; outfile.open("afile.dat"); float a[6]; for (int i=0;i<6; i++){ outfile <<a[i]

我需要在外部文件中写入循环的输出,但我收到不稳定的值,我的程序是:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream outfile;
    outfile.open("afile.dat");

    float a[6];

    for (int i=0;i<6; i++){
        outfile <<a[i]<<endl;
    }

    outfile.close();
    return 0;
}
而不是:

0 
1
2
3
4
5
我不知道怎么了,有人能帮我吗


谢谢

您的代码正在调用未定义的行为。
浮点a[6]
未初始化。
C++标准不保证在未初始化数组中会找到什么数据。
像这样初始化数组
float a[6]{}在尝试读取之前。

当前,您正在输出
a
的未初始化内容。这是未定义的行为

如果要输出
i
的值,请替换

outfile << a[i] << endl;

outfile尝试用有意义的值初始化数组
a[6]
,或者,在for循环中,尝试以下内容:
outfile Amadeus,这段小代码是一个小示例,用来解释疑问,真正的代码有1000多个数组元素。我不能谈论真正的数组,但这段代码表明您尚未初始化它。我
outfile << a[i] << endl;
outfile << i << endl;