A voir également:
- C++ extraire les données d'un .txt
- Extraire une video youtube - Guide
- Extraire son video - Guide
- Effacer les données de navigation - Guide
- Extraire image pdf - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
3 réponses
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
23 nov. 2011 à 10:49
23 nov. 2011 à 10:49
je ne comprends rien à ce que tu fait.
C'est quoi ce NBlines, cette boucle infinie.
tu donnes un exemple de flottant mais tu cherches à lire des entiers !
plutôt que d'utiliser atoi, pourquoi ne mets tu pas directement ta lecture de fichier dans une variable ?
C'est quoi ce NBlines, cette boucle infinie.
tu donnes un exemple de flottant mais tu cherches à lire des entiers !
plutôt que d'utiliser atoi, pourquoi ne mets tu pas directement ta lecture de fichier dans une variable ?
En faite au début je veux compter le nombre de ligne de mon document (NBlines), avec une variable par ligne j'obtiens donc mon nombre de variable pour dimensionner mon tableau dans lequel je vais enregistrer ces précédentes.
Le code pour compter les lignes n'est pas de moi, j'avoue ne pas vraiment le comprendre ...
j'utilisais atoi car mes variables étaient placées dans un string que je devais donc convertir pour le mettre dans un double ... problème résolu avec le nouveau code que j'ai écris :
<code>
void readdata()
{
ifstream file ("Data.txt", ios::in);
if ( file ) // Open file ?
{
string buffer;
int i=0;
while (std::getline(file, buffer))
{
double line;
file >> line;
y[i] = line;
//cout << "X[ " << i << "] = "<< x[i] << endl;
i++;
}
}
else{cerr << "Impossible d'ouvrir le fichier Data.txt !" << endl;}
file.close();
}
<code>
Cependant je dois donner une valeur fixe a mon tableau que je connais plus ou moins d'avance... et cela ne me plais pas , comment pourrais je adapter automatiquement mon tableau a la bonne dimension et cela en le laissant comme variable global ? de plus ici je dois utiliser un buffer qui enfaite me sert juste a limiter ma boucle au bon nombre d'itérations , cela me plais pas mais je ne vois pas d'autre moyen... en déterminant mon nombre de variable je pourrai dimensionner mon tableau et limite mon while proprement... Sais tu comment faire cela ?
cordialement
Le code pour compter les lignes n'est pas de moi, j'avoue ne pas vraiment le comprendre ...
j'utilisais atoi car mes variables étaient placées dans un string que je devais donc convertir pour le mettre dans un double ... problème résolu avec le nouveau code que j'ai écris :
<code>
void readdata()
{
ifstream file ("Data.txt", ios::in);
if ( file ) // Open file ?
{
string buffer;
int i=0;
while (std::getline(file, buffer))
{
double line;
file >> line;
y[i] = line;
//cout << "X[ " << i << "] = "<< x[i] << endl;
i++;
}
}
else{cerr << "Impossible d'ouvrir le fichier Data.txt !" << endl;}
file.close();
}
<code>
Cependant je dois donner une valeur fixe a mon tableau que je connais plus ou moins d'avance... et cela ne me plais pas , comment pourrais je adapter automatiquement mon tableau a la bonne dimension et cela en le laissant comme variable global ? de plus ici je dois utiliser un buffer qui enfaite me sert juste a limiter ma boucle au bon nombre d'itérations , cela me plais pas mais je ne vois pas d'autre moyen... en déterminant mon nombre de variable je pourrai dimensionner mon tableau et limite mon while proprement... Sais tu comment faire cela ?
cordialement
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
24 nov. 2011 à 08:11
24 nov. 2011 à 08:11
Salut.
C'est mieux ainsi.
Comme tu fait du C++, ne te prends pas la tête, utilise la STL : list ou vector.
Un truc dans le genre :
comme ça tu mets tes doubles à la suite sans te soucier de la taille (c'est super le C++ ;)
C'est mieux ainsi.
Comme tu fait du C++, ne te prends pas la tête, utilise la STL : list ou vector.
Un truc dans le genre :
double line; std::list<double> y; while (file) { file >> line; y.push_back(line); }
comme ça tu mets tes doubles à la suite sans te soucier de la taille (c'est super le C++ ;)