2013-03-30 7 views
0

J'ai un code:lecture dans plusieurs fichiers texte

`int main() { 
int year; 

for (year=1880; year<=2011; year++) { 
stringstream ss; 
ss << year; 

string birth = ss.str(); 

ifstream yob("yob"birth".txt"); 
} 


}` 

Je veux lire dans 130 fichiers texte avec cette boucle pour, et chaque fichier texte ressemble à « yob1880.txt » ou « yob1975.txt » etc. Je sais que ifstream yob ("yob" birth ".txt") ne fonctionne pas, je voulais juste illustrer ce que je voulais faire. Comment puis-je ajouter la chaîne "yob" à l'année string et à la chaîne ".txt"?

Merci

Répondre

1

Utilisez un stringstream. Vous pouvez ensuite créer une chaîne et appeler le ss.str() pour récupérer la chaîne. Par ex,

std::stringstream ss; 
int n = 5; 
ss << "file" << n << ".txt"; 
std::cout << ss.str() << std::endl; 

Ce écriront file5.txt à la sortie standard.

Edit: Il suffit de vérifier les documents, et il ressemble à std :: ifstream prend une chaîne C, pas un std::string, vous devez donc appeler c_str() sur la chaîne résultante, par exemple,

std::ifstream file(ss.str().c_str()); 
+0

alors comment puis-je entrer le fichier? Le fichier ifstream (ss.str(). c_str()) ne fonctionne pas. Lorsque j'essaie de tracer le fichier après l'avoir lu dans un tableau, cela ne fonctionnera pas – user22

+0

Comment essayez-vous d'imprimer le fichier? – osandov

Questions connexes