0

私はプログラムを作成しており、読み取りとコマンドの取得が必要な .txt ファイルがあります。テキスト ドキュメントは次のようになります。

U
R
F 10
D
F 13
Q

そして、私はそれから数字を取得する必要があります。ファイルを読み取る方法は、ifstreamという名前のオブジェクトからinstreamです。現在私が使用している

while(instream.get(charVariable)){
    switch(charVariable){
    case 'F': //do the forward command
       break;
    ...
    }
}

forward コマンドはその行を取得する必要があり、それを実行し、. を読み取り、Fスペースをスキップし、整数をint変数に取得する必要があります。私はC ++にかなり慣れていないので、それを行うのに助けが必要です....どうすれば数値を取得し、単一のchar変数に読み込み、整数変数に入れることができますか? どんな助けでも素晴らしいでしょう!ありがとう

4

3 に答える 3

1

streamsそれらから読みながら移動します。つまりF、ストリームから読み取った場合、次の入力はinteger. また、それらはフォーマットされた入力で機能するため、使用するとストリームは空白をスキップします >>

while(instream >> charVariable)){
    switch(charVariable){
    case 'F': //do the forward command
       int nr;
       instream >> nr;
       // do something with number.
       break;
    ...
    }
}
于 2013-05-09T20:17:31.933 に答える
0

使用される数値は 1 文字よりも大きくなる可能性があるため (つまり、「10」は 2 文字)、通常の整数変数を使用するのが最善です。

int n;
...
instream >> n; //if your switch statement is working this goes inside the 'F' case

次に、n を使ってやりたいことができます (次の整数を n に読み込む前に)。

于 2013-05-09T20:34:51.697 に答える