我对 C++ 非常陌生(这实际上是我参与过的第一个程序),并且在编写此程序时几乎必须学习它,但我遇到了困难。
该程序应该读入一个文本文件,将其加载到一个数组中并为数组中的每个数字分配一个字符(因此为此我想我将创建 2 个数组,一个 int 数组从文件中读入的数字,以及一个字符数组,其中包含分配给数字的字符)。然后它将打印这两个数组。然后它应该遍历初始 int 数组并搜索其值与其相邻值相差超过一个的任何数字,如果找到这样的值,它应该为该数字提供其相邻值的平均值。它应该进行所有这些更正,然后将字符分配给这些更正后的数字并打印出两个数组。
我真的不知道该怎么做,但我会尽量将我的问题缩小到我最初的问题。我不知道如何从文件中加载数组。我的教科书似乎很好地涵盖了数组和文件,但它并没有真正将它们放在一起并讨论从文件构建数组。
这是文件的样子,第一个数字是数组的大小。
10
7 6 9 4 5 4 3 2 1 0
6 5 5 5 6 5 4 3 2 1
6 5 6 6 7 6 8 4 3 2
1 5 6 7 7 7 6 5 4 3
5 5 6 7 6 7 7 6 5 9
5 6 7 6 5 6 6 5 4 3
5 6 7 9 5 5 6 5 4 3
5 5 6 7 6 6 7 6 5 4
5 9 5 6 7 6 5 0 3 2
5 5 5 5 6 5 4 3 2 7
这是我到目前为止的代码,尽管其中绝大部分都是处理打开文件的。我假设它至少是正确的,因为当我运行它时我没有收到“无法打开文件错误”。
#include <iostream>
#include <fstream>
#include <array>
int main() { // Main will be in prog1_test
//Open file
ifstream prog1File("prog1.dat", ios::in);
//If file can't be opened, exit
if (!prog1File) {
cerr << "File could not be opened" << end;
exit(EXIT_FAILURE);
}
int size;
int numArray[][];
}
虽然我确实声明了大小和数组变量,但我不知道这样做是否正确,就像我说的那样,我对此还是很陌生。我知道一些基本的 Java,但我无法弄清楚如何将其转换为 C++。非常感谢任何建议。
最佳答案
只需将 ofstream 替换为 ifstream,将 ios::out 替换为 ios::in
#include <iostream>
#include <fstream>
#include <array>
int main() { // Main will be in prog1_test
//Open file
ifstream prog1File("prog1.dat", ios::in);
//If file can't be opened, exit
if (!prog1File) {
cerr << "File could not be opened" << end;
exit(EXIT_FAILURE);
}
int size;
int numArray[][];
}
ofstream 用于写入而不是从文件读取,ios::out 是输出打开模式而不是输入打开模式。
希望对您有所帮助。
关于c++ - 将文件的元素加载到 C++ 中的二维数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25775392/