我正在閱讀文本文件並加載到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]'打印它被讀入時的位置。 –