是否可以将数据类型视为输入流?

时间:2010-02-17 04:20:27

标签: c++ istream

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的数据成员中(为了方便起见,我公开了它)。为了确保这个工作,我输出移动数据,确定它有效

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

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

1 个答案:

答案 0 :(得分:2)

您可以使用stringstream

#include <sstream>

int main() {
    char foo[] = "1d";
    std::stringstream ss(foo);
    Move move;
    ss >> move;
    return 0;
}