gpt4 book ai didi

c++ - 将文件读入数组并输出数组 C++

转载 作者:行者123 更新时间:2023-12-02 10:05:18 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Why is iostream::eof inside a loop condition (i.e. `while (!stream.eof())`) considered wrong?

(5 个回答)


去年关闭。



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

int main()
{
ifstream inData("Text.txt");
ofstream outData("arrayout.txt");

int n = 0;
int num;
int array[10];

while (!inData.eof())
{
inData >> array[n];
n++;
}
for (int a = 0; a < n; a++)
{
cout << array[n];
}

inData.close();
outData.close();
}

我的问题是这个。该程序应该读取一个数据文件,将其读入一个数组,然后向前和向后打印该数组。我一整天都在寻找一些答案,我已经接近了,但我不明白为什么这段代码在我执行时不打印我的数字。我连续十次得到 -858993460 的数字行。

文本文件中的数字为: 1-10 逐行输入。有人可以帮我吗? :)

最佳答案

cout << array[n];导致未定义的行为,因为 n已超过数组的末尾。您的意思可能是 cout << array[a]; .输出项之间的一些空白将是一个好主意。
eof的使用很穷,see here for full explanation .循环可以改进为:

for (n = 0; n < 10 && inData >> array[n]; ++n )
{}

(当然,有多种方法可以格式化这样的循环),但退出条件应该是读取失败,重要的是不要超出 storage 的界限。

关于c++ - 将文件读入数组并输出数组 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60480941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com