Est-il possible de traiter les types de données comme un flux d'entrée?

StackOverflow https://stackoverflow.com/questions/2278274

  •  21-09-2019
  •  | 
  •  

Question

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 dispose de lignes de 2 caractères, donc si il avait "9r", "9r" serait stockée dans la déplacer les données de membre (je l'ai fait tout juste pour la facilité).Pour être sûr que cela fonctionne, j'ai sortie les données de déplacer et bien sûr, il fonctionne

Ce que j'essaie de faire est d'utiliser ce même opérateur, mais au lieu de trouver l'entrée de dire un fichier ou l'entrée standard stdin, je vais avoir un datamember qui maintient l'entrée souhaitée.Ainsi, en principal, si j'ai un char tableau avec les "1d", j'ai besoin d'être en mesure d'utiliser la même fonction (sans le modifier) pour faire la même chose.

Est-ce possible?Toute aide appréciée.

Était-ce utile?

La solution

Vous pouvez utiliser un stringstream:

#include <sstream>

int main() {
    char foo[] = "1d";
    std::stringstream ss(foo);
    Move move;
    ss >> move;
    return 0;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top