[C++] fgets et sscanf

fgets et sscanf [C++] - C++ - Programmation

Marsh Posté le 30-09-2006 à 23:25:02    

Bonjour,
 
J'esseye de modifier un programme C en C++.
Et j'aimerais bien trouvé l'équivalent de la fonction sscanf et fgets en C++.
 
Merci d'avance...

Reply

Marsh Posté le 30-09-2006 à 23:25:02   

Reply

Marsh Posté le 30-09-2006 à 23:47:43    

std::getline + std::istringstream + std::istream operator>>(std::istream &, T &t);

Reply

Marsh Posté le 01-10-2006 à 17:28:09    

Merci pour cette réponse mais j'ai en peu de mal :(
 
Voici le code C:

Code :
  1. if(sscanf(buff, " MD5Version %d", &version) == 1)
  2. {
  3. if(version!=10)
  4. {
  5.  //bad version
  6.  return 0;
  7. }
  8. }


- "buff" est un char de 256 qui contient une ligne d'un fichier
- "version" est un int;
 
Mais je n'arrive pas à refaire ça en C++. Je supose que c'est un truc du genre mais je ne trouve pas le bon *stream qui me permette d'utiliser à la fois >> et find et de fonctionner avec getline:  

Code :
  1. istringstream buffer;
  2. getline(file, buffer);
  3. if(buffer.find("MD5Version " ))
  4. {
  5. buffer >> version;
  6. if(version!=10)
  7. {
  8.  //bad version
  9.  return 0;
  10. }
  11. }


Message édité par casafa le 01-10-2006 à 17:29:04
Reply

Marsh Posté le 01-10-2006 à 19:04:41    

RTFM. On fait pas de l'à peu près. On commencera à t'aider quand tu auras ouvert la doc de std::getline et std::istringstream. Arrête de supposer et mets toi au travail.

Reply

Marsh Posté le 01-10-2006 à 20:47:14    

Code :
  1. istringstream buffer;
  2. file.getline((char *)buffer.str().c_str(), 512);
  3. if(buffer.str().find("MD5Version " ))
  4. {
  5. buffer >> version;
  6. if(version!=10)
  7. {
  8.  //bad version
  9.  return false;
  10. }
  11. }


 
C'est mieux ? Mais je ne comprend vraiment pas pourquoi à l'exécutation mon code plante sur : "buffer >> version;"...

Reply

Marsh Posté le 02-10-2006 à 09:42:42    

Taz a écrit :

RTFM. On fait pas de l'à peu près. On commencera à t'aider quand tu auras ouvert la doc de std::getline et std::istringstream. Arrête de supposer et mets toi au travail.


 
Je décrypte : "te fiches pas de nous"

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed