我希望能够将文本文件中的字母读入2d数组中。我正在按照所有步骤进行操作,但是输出结果并不正确。
我尝试初始化数组,尝试更改for循环,尝试对const int值进行本地化,但是没有任何效果。
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
int main()
{
const int ROWS = 5;
const int COLS = 3;
ifstream inFile("grades.txt");
char gradeArray[ROWS][COLS] = {0};
inFile.open("grades.txt");
if (!inFile.is_open())
{
cout << "Error opening the file.";
exit(1);
}
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
inFile >> gradeArray[i][j];
}
}
cout << gradeArray[0][1];
inFile.close();
system("pause");
return 0;
}
TXT文件(我的资源文件中为grades.txt)
A [R 乙 C H G C F 小号 乙 一种 一种 小号 E
到目前为止,我已经尝试过提供给我的建议,但是它没有用。我认为文件未正确读取?或文件未正确输出...
答案 0 :(得分:1)
IIRC执行inFile >> gradeArray[i][j]
将捕获空白;您应该能够通过读取字符串来解决此问题,而该字符串将跳过空白;只需在顶部添加#include <string>
,然后在循环中读入字符串并获得成绩作为第一个字符,例如
string line;
inFile >> line;
gradeArray[i][j] = line.empty() ? ' ' : line[0];
或您要代表缺失数据的任何字符。