私はテキストファイルを読み込んで、にロードしています。course.size()
とcourse[i].size
に基づいて印刷しようとすると、最後の行のみが出力されます。ここで2次元文字列ベクトルのみの最後の行を印刷するためのcout
は、コードは次のとおりです。
追加することにより、'\r'
除去多分しようとしました
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;
}
:
if (!line.empty() && line[line.size() - 1] == '\r') {
line.erase(line.size() - 1);
}
しかし、単にお互いに次の行ごとに各[i][j]
をプリントアウトしていることを。
xxxxxxxxxxxx
xxx yyyxxx
xxxXXYYxxyyy
あなたが調べていました(印刷、debugger) 'course.size()'の値は? –
"しかし、それはちょうどお互いの隣の行ごとに[i] [j]を印刷しました。 - それは期待される出力であり、あなたのコードはどの段でも改行を出力しません。 –
@ M.Mこれはタイプミスで、 '\ r'ではなく' \ n'でした。 '\ r'を取り除いて' for'ループを通って 'cout'に行くと、最初の行を出力し、次に空白を、次に次の行を、次に空白などを出力します。 ;それは決して改行しない。 –