0

次のような形式のファイルがあります。

Word1          num1 num2
Word2 Word3    num3 num4

Word1 と num1 の間には 15 個のスペースがあり、Word1、Word2、Word3 などの単語で使用されます。

最初の 15 文字を読み取って文字列に入れ、数字を読み取りたい:

string[0] = "Word1          ";
number[0] = num1;
number[1] = num2;
string[1] = "Word2 Word3    ";
number[2] = num3;
number[3] = num4;
...

ファイルからデータを読み取るために現在使用している関数:

void read_data(){

ifstream datafile("U2.txt");

datafile>> product_count >> product2_count;

for (int i = 1; i <= product_count; i++) {
    datafile>> product_cost[i];
}

for (int i = 1; i <= product2_count; i++) {
    datafile>> products[i].product2_name;
    for (int j = 1; j <= product_count; j++) {
        datafile>> products[i].product_ammount[j];
    }
}

datafile.close();

}

およびデータファイル自体:

6 5
12 25 35 2 3 9
Salotos        5 1 0 0 2 1
Kepsnys        6 3 12 9 0 0
Gaiva          0 0 1 15 1 0
Ledai Miau     0 0 5 5 5 1
Tortas         1 2 1 1 1 1
4

2 に答える 2

1

私はあなたのためにコードを書きませんが、基本的な考え方は

  • getline()との行を読むstd::string
  • 最初の15文字を取り、スペースを削除するためにトリミングします
  • std::stringstream文字列の残りの部分を使用してaを作成し、実行しますsstream >> num1[i] >> num2[i]numXintの配列とilineのインデックスはここにあります)。
于 2012-05-14T11:41:56.890 に答える