0

stdin で 1 ポジション戻そうとしています。次のコードを使用します。

fpos_t fPos;
fgetpos(stdin,&fPos);
fPos -= 1;
fsetpos(stdin,&fPos);

しかし、私はこのエラーが発生します:

 invalid operands to binary expression ('fpos_t'(aka '_G_fpos_t') and 'int')

しかし、私の質問は、なぜ私がそれを得るのですか? では、どうすれば fPos を 1 つ後ろの位置に設定できますか?

ありがとう。

4

1 に答える 1

3

fpos_t は int ではなく構造体であり、fgetpos および fsetpos 呼び出しでのみ使用することを意図しています - 直接操作することは想定されていません

現在のストリーム位置を操作するには、SEEK_CUR 引数を指定して fseek() を使用します。

于 2014-10-29T02:56:21.487 に答える