0
私は情報が入ったテキストファイルを持っています。それは次のようになります。ベクトル、構造、およびwhileループ - ファイルからの読み込み
Rimas 252 45
Robertas 187 13
Jurgis 205 36
Matas 58 50
Antanas 145 5
10 20
あなたはすべての行は、3人の異なるメンバー(名前、最初の数、第二の数)を持って見ての通り、2つだけのメンバー(2つの数値を)持っている最後の行まで。この情報を自分のコードに読み込もうとしています。 2つのメンバーがあり、その行に文字列がないので、最後の行まではすべて正常に動作します。私は別の行を認識し、上記の行と同じではなく、他の方法を読むために自分のコードを作成する必要があります。
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
struct lankytojai { // name, first number, second number
string vardas;
int litai;
int ltcentai;
};
void read(vector<lankytojai> l) {
ifstream failas("vvv.txt"); //reads three members correct, last two incorrectly
int i = 0;
while(failas) {
lankytojai lan;
int lt;
string var;
while(!(failas >> lan.ltcentai)) {
failas.clear();
if(failas >> var) {
lan.vardas += var;
}
if(failas >> lt) {
lan.litai = lt;
}
else {
return;
}
}
l.push_back(lan);
cout << l[i].vardas << " " << l[i].litai << " " << l[i].ltcentai << endl;
i++;
}
}
int main() {
vector<lankytojai> l;
read(l);
return 0;
}
はい、それは機能しますが、最後の行は{44 99 31 66 77}になります。 –
@EdvinasSadeckas:その場合、 'space_count'は4になり、何をすべきかを決める必要があります。あなた次第。 –
はい、私はそれを理解していますが、行のスペース番号に依存しないコードが必要です –