ファイルから読み取ったデータを保持する文字列配列があります。76行で構成されています。
私がやりたいのは、それらを異なる配列に格納することです。1つの配列の21行目から31行目までのように。および 31 番目から 41 番目の 1 つの配列。どうすればいいですか...助けてください
私は70行をそれぞれ10行を含む7つの配列に分割したいと考えています。ベクトルを使わずにそれを行う
しかし、これはうまくいきませんでした
ファイルから読み取ったデータを保持する文字列配列があります。76行で構成されています。
私がやりたいのは、それらを異なる配列に格納することです。1つの配列の21行目から31行目までのように。および 31 番目から 41 番目の 1 つの配列。どうすればいいですか...助けてください
私は70行をそれぞれ10行を含む7つの配列に分割したいと考えています。ベクトルを使わずにそれを行う
しかし、これはうまくいきませんでした
等値演算子を使用しています==
。ループ実行全体でこれらの値の 1 つに6 回i
だけ等しくなります。、、、、またはの場合のみ。ループの他の値は何もしません。i
11
22
33
44
55
66
i
あなたはおそらく<
代わりに意味した.
このようなもの:
getline(ol, arr[i/11][i%11]);
arr は s の astd::vector
ですstd::vector<std::string>
。または文字列の配列の配列。
さらに別の方法は次のとおりです。
while (1) {
std::string *ptr;
if (i < 11) ptr = arr1;
else if (i < 22) ptr = arr2;
// long list of arrays
getline(ol, ptr[i%11]);
// increment i, break on eof...
}
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
string arr[8][10];
int i = 0, j = 0;
ifstream ol("a.txt");
while(getline(ol, arr[i][j]))
{
++j;
if(j == 10)
{
++i;
j = 0;
}
}
}
This is assuming you don't have more than 80 lines.