ファイルから配列を含むベクトルに文字列を格納しようとしています。以下は、ベクターに情報を得るための私の方法です:ファイルから値を入力したときに、ベクター印刷が空白になるのはなぜですか?
{
string line;
int nooflines = 0;
ifstream myFile("SongListFile.txt");
while (getline(myFile, line)) {
nooflines++;
}
song temp;
myFile.open("SongListFile.txt");
for (int i = 0; i < nooflines; i++) {
myFile >> temp.title;
myFile >> temp.artist;
myFile >> temp.genre;
songs.push_back(temp);
}
myFile.close();
}
そして、これはイムは、この情報に印刷しようとしている方法です:彼らは何も含まれていないかのように文字列が印刷されているのはなぜ
void SongList::ViewSongList() {
int last_element_position = songs.size() - 1;
for (int i = last_element_position; i >= 0; i--)
{
cout << "\"" << songs[i].title << "\" by " << songs[i].artist << " (" << songs[i].genre << ")" << endl;
}
を? 2行のテキストがあるときに2つのテンプレートが印刷されるので、私の問題は配列に格納されていない文字列です。 }
は、あなたのデバッガでこのコードを通じて段階と、それはあなたが何を考えていことを確認しましたします? – MrEricSir
なぜ最初に行を数える必要がありますか?最初のループの 'songs'ベクトルを押すだけです。 – Barmar
あなたが働いていたと思われる 'Song'のためのループされたストリームの読み込みもチェックすると、問題が明らかになります。 – WhozCraig