2010-10-11 7 views
1

Comment puis-je détecter un espace OU un autre caractère/symbole spécifique dans une ligne d'un fichier en utilisant la bibliothèque fstream?C++ détecter l'espace dans le fichier texte

Par exemple, le fichier texte ressemblerait à ceci:

Dog Rover 
Cat Whiskers 
Pig Snort 

J'ai besoin le premier mot d'entrer dans une variable, et le second mot d'entrer dans une autre variable séparée. Cela devrait arriver pour chaque ligne du fichier texte.

Des suggestions?

Répondre

9

C'est assez simple.

string a; 
string b; 
ifstream fin("bob.txt"); 

fin >> a; 
fin >> b; 

Si ce n'est pas tout à fait ce que vous voulez, s'il vous plaît élaborer votre question.

Peut-être une meilleure façon est globalement d'utiliser un vecteur de chaînes ...

vector<string> v; 
string tmp; 
ifstream fin("bob.txt"); 
while(fin >> tmp) 
    v.push_back(tmp); 

Cela vous donnera un vecteur v qui détient tous les mots dans votre fichier.

+0

Les premier et deuxième mots sur la même ligne. Le premier mot sur la première ligne doit entrer dans une variable, puis le deuxième mot sur cette ligne doit aller dans une autre variable. Cela serait fait pour chaque ligne. J'essaie d'apprendre à faire une simple analyse de fichiers. – NateTheGreatt

+0

@NateTheGreatt Par défaut, ifstream' va lire les espaces, donc si vos fichiers ont des lignes comme 'hello there', lire le flux la première fois va lire' hello'. JoshD semble faire exactement ce que vous voulez, et vous voudrez probablement envelopper une boucle autour d'elle pour continuer à lire. – birryree

+0

Oh jeez je ne savais pas que>.>. Désolé à ce sujet, et merci d'avoir éclairci ça! – NateTheGreatt