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 的数据,并且确实有效

我想做的是使用相同的运算符,但不是从文件或标准输入中获取输入,而是拥有一个保存所需输入的数据成员。因此,主要是,如果我有一个带有“1d”的字符数组,我需要能够使用相同的函数(不修改它)来做同样的事情。

这可能吗?任何帮助表示赞赏。

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 回答