stiko
Messages postés38Date d'inscriptionjeudi 29 juin 2006StatutMembreDernière intervention20 février 2008
-
5 juil. 2006 à 16:52
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 2008
-
5 juil. 2006 à 19:31
slt;
c'est une programme pour ouvrire un fichier
'toto.txt', la premiere partie est pour afficher le cntenu de fichier
dans la cosole et la deuxiéme partie pour compter le nombre de ligne de
meme fichier.et comme vous pouvez noté que j étais obligé de faire 2
fois le" ifstream" car si je met les 2 partie sous la meme ifstream il
ne m'a ffiche que la première.
#include
#include <fstream>
#include <string>
#include
using namespace std;
int main()
{
// le constructeur de ifstream permet d'ouvrir un fichier en lecture
ifstream fichier( "toto.txt" );
if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
{
string ligne; // variable contenant chaque ligne lue
while ( getline( fichier, ligne,'\0') )
{
cout << ligne << endl;
}
ifstream fi ("toto.txt" );
int lines = count(
istreambuf_iterator<char>( fi ),
istreambuf_iterator<char>(),
'\n' );
// cette boucle s'arrête dès qu'une erreur de lecture survient
luhtor
Messages postés2023Date d'inscriptionmardi 24 septembre 2002StatutMembreDernière intervention28 juillet 20086 5 juil. 2006 à 19:31
Oue tu es chiant, car ce pb tombe 10 fois par semaines. Si tu prenais
le temps de regarder le forum, tu aurais probablement ta réponse.
Cependant, arrete de bricoler avec 2 ifstream, et dis toi que si ca
marche pas avec un, l'erreur vient de toi. Et faut pas que tu
t'autorises du bricolage sous prétexte que: "tiens comme ca, ca marche".
Une bonne chose serait ptet de revenir au début du fichier apres ta
série de getline non ? Car forcément, si tu lis apres le fichier, ca
bloque. fichier.seekg(0) pour revenir au début.
Pour convertir en entier, faut pas extraire dans un string, mais:
int valeur; char point;
file >> valeur;
file >> point;
file >> valeur;
etc ... c'est un peu pourri, mais au moins, ca marchera, sauf si ton
fichier ne respecte par exactement le schéma: entiers séparés par ";".
Ou tu peux faire la meme chose en chargeant dans un std::istringstream;