【发布时间】:2018-11-07 19:18:45
【问题描述】:
我需要帮助,我正在尝试读取一个看起来像这样的文件:
.........
.........
.........
.........
....X....
.........
.........
.........
.........
我需要将其解析为 2d 字符向量,以便稍后对其进行修改。
到目前为止,我想出的是
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <sstream>
//look up line by line parsing
using namespace std;
int main(int argc, char* argv[]) {
vector<vector<char>> data;
ifstream myReadFile;
myReadFile.open("input1.txt");
for (int i = 0; i < data.size(); i++) {
int c = 0;
char currentchar;
while (!myReadFile.eof()) {
data[i][c] = currentchar;
c++;
currentchar = myReadFile.get();
}
}
//for ()
myReadFile.close();
return 0;
}
【问题讨论】:
-
Re:
i < data.size()--data.size()为 0,因此不会运行循环体。你知道网格的尺寸吗? -
这并没有解决问题,而是养成使用有意义的值初始化对象的习惯,而不是使用默认构造函数创建它们并立即更改它们。即把
ifstream myReadFile; myReadFile.open("input1.txt');改成ifstream myReadFile("input1.txt");。 -
@PeteBecker 谢谢,我是 C++ 新手,请记住这一点