1
達成しようとしているのはを使用して、.txt
ファイルから1行ずつデータを読み込み、変数inVal
に文字列として保存することです。次に、文字列に含まれる個々の数値を、オブジェクト関数ArrayBag.add(value)
に渡すことによって、オブジェクト配列内の個々の要素に保存します。これまで私はinVal
にデータを読み込めましたが、私が試したことはありませんでした。getline()
の後のコードを含む文字列の数値を変換して保存することはできませんでした。ご指摘やご指摘をいただければ幸いです。配列内の要素に文字列内のintを保存する方法
.txt
ファイルには、次のようになります。
3 4 5 7 5 16 7 12 11 12 3 9 9 8 1 12
15 4 3 6 1 12 3 12 7 8 19 9 11 12 8 5 -4 -100
これまでに書かれたアイブ
私のコードは次のようである:
void readInv(ArrayBag &ArrayBag1, ArrayBag &ArrayBag2) {
//ArrayBag1 and ArrayBag2 are objects of class ArrayBag
std::string inVal;
//value to hold each line in file
std::ifstream readFile;
readFile.open("setInventory.txt"); //"setInventory.txt" is the txt file being read from.
if (readFile.is_open()) {
std::cout << "File is being read." << std::endl;
while(!readFile.eof()) {
getline(readFile, inVal);
for(int i = 0; i < inVal.size(); i++) {
std::cout << inVal[i] << std::endl;
ArrayBag1.add(inVal[i] - '0');
//ArrayBag1.add() is the public member function used to add the
//passing value to the private member array.
}
}
}
}
を使用することができると思いますトピック(しかしすぐに来るバグを解決する):[なぜiostream :: eofループ内のconditi (https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – user4581301
[行単位でファイルを読む](https: //stackoverflow.com/questions/7868936/read-file-line-by-line)。具体的には、1オプション2に答えてください。 – user4581301
これに 'std :: vector'を使用できない理由はありますか?ベクトルは配列よりもはるかに優れています。 – Sailanarmo