行を読み取ってから、行から値を抽出することができます。最後のパラメータが存在しない場合は、この方法では、次の行から読み取る文句を言わない:何のオペランドがありません
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
int main()
{
std::ifstream in("in.txt");
std::string line;
while (std::getline(in, line)) {
std::string label;
std::string opcode;
std::string operand;
std::stringstream{ line } >> label >> opcode >> operand;
std::cout << label << " " << opcode << " " << operand << std::endl;
}
return 0;
}
場合、operand
文字列は空になります。
また、あなたはこれを行うことができます。
int operand = INT_MAX;
std::stringstream{ line } >> label >> opcode >> operand;
if(operand == INT_MAX) {
// no int operand found
}
私は、ファイルからの完全なラインを読み、そして分割する
strtok
を使用するためにあなたをお勧めします
あなたが知っている場合その行を追跡し、適切なポイントで条件を使用します。 –
残念ながら、私はしません。 – RowanX