1
int main(int argc, char *argv[])
{
  Move move;
  ifstream inf("eof.txt");
  inf >> move;
  return 0;
}

istream& operator>> (istream &is, Move &move)
{ 
  is >> move.c; // c = char c[2];
  cout << move.c << endl;
  return is;
}

eof.txtには2文字の行があるため、「9r」が含まれている場合、「9r」はmoveのデータメンバーに格納されます(簡単にするために公開しました)。これが機能することを確認するために、moveのデータを出力し、十分に機能することを確認します

私がやろうとしているのは、これと同じ演算子を使用することですが、たとえばファイルやstdinから入力を取得する代わりに、目的の入力を保持するデータメンバーがあります。したがって、主に、「1d」のchar配列がある場合、同じことを行うために同じ関数を(変更せずに)使用できる必要があります。

これは可能ですか?助けていただければ幸いです。

4

1 に答える 1

2

あなたは使用することができますstringstream

#include <sstream>

int main() {
    char foo[] = "1d";
    std::stringstream ss(foo);
    Move move;
    ss >> move;
    return 0;
}
于 2010-02-17T04:23:30.700 に答える