我正在阅读文本文件并加载到std::vector<std::string> course
,当我尝试打印它时,它基于course.size()
和course[i].size
它只打印最后一行。cout for 2D字符串矢量仅打印最后一行
下面是代码:
int main(int argc, char** argv) {
ifstream fin(argv[1]);
vector<string> course;
string line;
while (getline(fin, line)) {
course.push_back(line);
}
for (int i = 0; i < course.size(); i++) {
for (int j = 0; j < course[i].size(); j++) {
cout << course[i][j];
}
}
return 0;
}
通过添加也许试过'\r'
去除:
if (!line.empty() && line[line.size() - 1] == '\r') {
line.erase(line.size() - 1);
}
但是,这只是打印出来的每个[i][j]
每行彼此相邻。
的数据是这样的:
xxxxxxxxxxxx
xxx yyyxxx
xxxXXYYxxyyy
你检查(打印,调试器)'course.size()'的值? “ –
”但是,每行只显示了每一行[i] [j]。“ - 这将是预期的输出,你的代码在任何阶段都不会输出换行 –
@ M.M这是一个错字,它不是'\ n'。当我摆脱'\ r',然后通过'for'循环到'cout'时,它输出第一行,然后是空格,然后是下一行,然后是空格等等...在同一行上;它从不换行。我试图让每个'[i] [j]'打印它被读入时的位置。 –