2010-04-09 5 views
0

J'ai un fichier dans lequel chaque ligne contient deux nombres. Le problème est que les deux nombres sont séparés par un espace, mais l'espace peut être n'importe quel nombre d'espaces vides. soit un, deux ou plus. Je veux lire la ligne et stocker chacun des nombres dans une variable, mais je ne suis pas sûr comment la marquer.Comment lire les valeurs du fichier. tokenizer

i.e 
1 5 
3 2 
5 6 
3 4 
83   54 
23 23 
32 88 
8   203 

Répondre

4

Lire chaque ligne, coller le contenu de la ligne dans un stringstream, puis lire les deux int de la ligne:

std::string line; 
while (std::getline(myfilestream, line)) 
{ 
    std::stringstream ss(line); 
    int i, j; 
    if (ss >> i >> j) 
    { 
     // use i and j 
    } 
} 

Si vous savez pertinemment que chaque ligne aura exactement deux int s (c'est-à-dire, vous faites absolument confiance positivement à votre source), vous pouvez lire les valeurs directement à partir du flux.

+0

merci. travaillé parfaitement. – user69514

Questions connexes