2009-11-11 5 views
3

Ok, j'essaie de trouver la méthode la plus rapide pour lire un fichier texte avec lequel je travaille. Le contenu du fichier se présentent comme suitLa façon la plus rapide de lire un fichier ligne par ligne avec un nombre arbitraire de caractères dans chaque

 
1982 3923 3542 4343 
2344 3453 2 
334 423423 32432 23423 

Ils sont fondamentalement juste un nombre arbitraire de chiffres int et je besoin de lire ligne par ligne. Serait-il préférable d'utiliser getline ou l'opérateur d'insertion (>>)? Personnellement, je pense qu'il serait beaucoup plus facile à implémenter en utilisant l'opérateur d'insertion mais je ne sais pas comment je ferais le programme afin qu'il lise tous les nombres int dans la même ligne jusqu'à ce qu'il atteigne la fin. Je pensais à sa mise en place comme suit:

ifstream input; 
input.open("someFile.txt"); 
if (input) { 
    char* ch; 
    while (ch != '\n\) 
     getline(input, buffer, ' ') 

Le seul problème est que je dois faire une conversion à un int, puis mettre chaque int dans un tableau. Mon but final désiré est de produire un tableau à deux dimensions où chaque ligne de int est un tableau de int. Toute suggestion quant à la meilleure mise en œuvre est appréciée!

Répondre

5

Je keep it real simple:

ifstream in(...); 
string line; 
while (getline(in, line)) { 
    istringstream line_in(line); 
    while (line_in) { 
     int val = 0; 
     if (line_in >> val) { 
      // Do something with val 
     } 
    } 
    // eol 
} 
2
  1. Il faudrait de référence pour obtenir une réponse correcte.
  2. La vitesse des deux fonctions est définie par l'implémentation. Vous pourriez obtenir des résultats différents sur différents compilateurs.
  3. Le moyen le plus rapide de le faire serait probablement d'utiliser une machine à états finis sur mesure. Mais ceux-ci sont à peu près aussi illisibles que vous obtenez.

Produire le code correct en premier. Ensuite, affinez-le si vous avez besoin de plus tard.

+0

+1 Pour le point 1. Mesurer deux fois, couper une fois! –

Questions connexes