comment charger dans un array un fichier de taille inconnu ligne de 5
chiffre dans le fichier mais ne sachant combien de ligne il y a
comment tout charger en memoire et reprendre ensuite pour trier etc
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marc Boyer
Le 15-02-2006, giovanni a écrit :
comment charger dans un array un fichier de taille inconnu ligne de 5 chiffre dans le fichier mais ne sachant combien de ligne il y a comment tout charger en memoire et reprendre ensuite pour trier etc
1) reformuler en français (langage de ce forum) en mettant les verbes, les points, et autres subtilités 2) regarder std::vector, std::ifstream, std::ofstream 3) regarder std::sort
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain
Le 15-02-2006, giovanni <giovannisch@hotmail.com> a écrit :
comment charger dans un array un fichier de taille inconnu ligne de 5
chiffre dans le fichier mais ne sachant combien de ligne il y a
comment tout charger en memoire et reprendre ensuite pour trier etc
1) reformuler en français (langage de ce forum) en mettant
les verbes, les points, et autres subtilités
2) regarder std::vector, std::ifstream, std::ofstream
3) regarder std::sort
Marc Boyer
--
Entre le fort et le faible, c'est la liberte qui opprime et le droit
qui libere. Henri Lacordaire, Dominicain
comment charger dans un array un fichier de taille inconnu ligne de 5 chiffre dans le fichier mais ne sachant combien de ligne il y a comment tout charger en memoire et reprendre ensuite pour trier etc
1) reformuler en français (langage de ce forum) en mettant les verbes, les points, et autres subtilités 2) regarder std::vector, std::ifstream, std::ofstream 3) regarder std::sort
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain
giovanni
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier voila
"Marc Boyer" a écrit dans le message de news:
comment charger dans un array un fichier de taille inconnu ligne de 5 chiffre dans le fichier mais ne sachant combien de ligne il y a comment tout charger en memoire et reprendre ensuite pour trier etc
1) reformuler en français (langage de ce forum) en mettant les verbes, les points, et autres subtilités 2) regarder std::vector, std::ifstream, std::ofstream 3) regarder std::sort
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain
ok je reformule
charger un fichier du type text : 1 2 3 4 5
6 7 1 2 3
etc
en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5
1 2 3 6 7
etc
et resauver le fichier trier
voila
"Marc Boyer" <Marc.Boyer@enseeiht.yahoo.fr.invalid> a écrit dans le message
de news: slrndv5ro0.1hi.Marc.Boyer@localhost.localdomain...
comment charger dans un array un fichier de taille inconnu ligne de 5
chiffre dans le fichier mais ne sachant combien de ligne il y a
comment tout charger en memoire et reprendre ensuite pour trier etc
1) reformuler en français (langage de ce forum) en mettant
les verbes, les points, et autres subtilités
2) regarder std::vector, std::ifstream, std::ofstream
3) regarder std::sort
Marc Boyer
--
Entre le fort et le faible, c'est la liberte qui opprime et le droit
qui libere. Henri Lacordaire, Dominicain
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier voila
"Marc Boyer" a écrit dans le message de news:
comment charger dans un array un fichier de taille inconnu ligne de 5 chiffre dans le fichier mais ne sachant combien de ligne il y a comment tout charger en memoire et reprendre ensuite pour trier etc
1) reformuler en français (langage de ce forum) en mettant les verbes, les points, et autres subtilités 2) regarder std::vector, std::ifstream, std::ofstream 3) regarder std::sort
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain
Marc Boyer
Le 15-02-2006, giovanni a écrit :
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut discuter un peu la modélisation de chaque ligne, une classe Ligne, un tableau de 5 int ou un vector d'int.
Ensuite, on écrit deux fonctions read/print membres de ligne qui prennent en paramètre respectivement un istream&/ostream& qui remplissent une ligne, soit en lisant 5 entiers, soit jusqu'à la fin de ligne.
On ecrit aussi une fonction membre trier, qui utilise std::sort.
Une fois que la classe Ligne est faite, pour lire le fichier, on ouvre un ifstream, on crée un std::vector<Ligne>, et on fait une petite boucle qui lit chaque ligne, crée une Ligne associée, l'ajoute à la fin du vector (methode push_back) et la trie. Reste à ensuite à écrire dans un fichier: on ouvre un ofstream, on parcourt le tableau, on écrit chaque ligne avec print, et voilà.
fclc++ étant un forum d'entraide et pas un forum qui fait des programmes à votre place, c'est maintenant à toi de travailler. Quand tu auras écrit un peu de code, si tu as du mal, reviens le poster.
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain
Le 15-02-2006, giovanni <giovannisch@hotmail.com> a écrit :
ok je reformule
charger un fichier du type text : 1 2 3 4 5
6 7 1 2 3
etc
en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5
1 2 3 6 7
etc
et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne.
On peut discuter un peu la modélisation de chaque ligne,
une classe Ligne, un tableau de 5 int ou un vector d'int.
Ensuite, on écrit deux fonctions read/print membres de ligne
qui prennent en paramètre respectivement un istream&/ostream&
qui remplissent une ligne, soit en lisant 5 entiers, soit
jusqu'à la fin de ligne.
On ecrit aussi une fonction membre trier, qui utilise
std::sort.
Une fois que la classe Ligne est faite, pour lire le fichier,
on ouvre un ifstream, on crée un std::vector<Ligne>, et on
fait une petite boucle qui lit chaque ligne, crée une Ligne
associée, l'ajoute à la fin du vector (methode push_back)
et la trie.
Reste à ensuite à écrire dans un fichier: on ouvre un
ofstream, on parcourt le tableau, on écrit chaque ligne
avec print, et voilà.
fclc++ étant un forum d'entraide et pas un forum qui fait
des programmes à votre place, c'est maintenant à toi de travailler.
Quand tu auras écrit un peu de code, si tu as du mal, reviens
le poster.
Marc Boyer
--
Entre le fort et le faible, c'est la liberte qui opprime et le droit
qui libere. Henri Lacordaire, Dominicain
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut discuter un peu la modélisation de chaque ligne, une classe Ligne, un tableau de 5 int ou un vector d'int.
Ensuite, on écrit deux fonctions read/print membres de ligne qui prennent en paramètre respectivement un istream&/ostream& qui remplissent une ligne, soit en lisant 5 entiers, soit jusqu'à la fin de ligne.
On ecrit aussi une fonction membre trier, qui utilise std::sort.
Une fois que la classe Ligne est faite, pour lire le fichier, on ouvre un ifstream, on crée un std::vector<Ligne>, et on fait une petite boucle qui lit chaque ligne, crée une Ligne associée, l'ajoute à la fin du vector (methode push_back) et la trie. Reste à ensuite à écrire dans un fichier: on ouvre un ofstream, on parcourt le tableau, on écrit chaque ligne avec print, et voilà.
fclc++ étant un forum d'entraide et pas un forum qui fait des programmes à votre place, c'est maintenant à toi de travailler. Quand tu auras écrit un peu de code, si tu as du mal, reviens le poster.
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain
kanze
Marc Boyer wrote:
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut discuter un peu la modélisation de chaque ligne, une classe Ligne, un tableau de 5 int ou un vector d'int.
La question, je crois, c'es s'il veut canoniser le format de la ligne ou non. A priori, je verrais bien une classe qui encapsule les cinq entiers, avec des opérateurs <, << et >> qui conviennent, et ensuite:
(Sauf qu'évidemment, il faudrait des vérifications des erreurs, surtout après le constructeur de v.)
À titre d'exemple, l'opérateur >> pourrait bien être quelque chose du genre :
std::string line ; if ( std::getline( src, line ) ) { std::istringstream s( line ) ; int i1, i2, i3, i4, i5 ; s >> i1 >> i2 >> i3 >> i4 >> i5 >> std::ws ; if ( ! s || s.peek() != EOF ) { src.setstate( std::ios::failbit ) ; } else { // Affecter les cinq entiers à leur dest. finale. } } return src ;
S'il faut conserver le format original de chaque ligne, je ferais à peu près pareil, mais je stockerais également la ligne lu ci-dessus dans l'objet.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Marc Boyer wrote:
ok je reformule
charger un fichier du type text : 1 2 3 4 5
6 7 1 2 3
etc
en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5
1 2 3 6 7
etc
et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut
discuter un peu la modélisation de chaque ligne, une classe
Ligne, un tableau de 5 int ou un vector d'int.
La question, je crois, c'es s'il veut canoniser le format de la
ligne ou non. A priori, je verrais bien une classe qui encapsule
les cinq entiers, avec des opérateurs <, << et >> qui conviennent,
et ensuite:
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut discuter un peu la modélisation de chaque ligne, une classe Ligne, un tableau de 5 int ou un vector d'int.
La question, je crois, c'es s'il veut canoniser le format de la ligne ou non. A priori, je verrais bien une classe qui encapsule les cinq entiers, avec des opérateurs <, << et >> qui conviennent, et ensuite:
(Sauf qu'évidemment, il faudrait des vérifications des erreurs, surtout après le constructeur de v.)
À titre d'exemple, l'opérateur >> pourrait bien être quelque chose du genre :
std::string line ; if ( std::getline( src, line ) ) { std::istringstream s( line ) ; int i1, i2, i3, i4, i5 ; s >> i1 >> i2 >> i3 >> i4 >> i5 >> std::ws ; if ( ! s || s.peek() != EOF ) { src.setstate( std::ios::failbit ) ; } else { // Affecter les cinq entiers à leur dest. finale. } } return src ;
S'il faut conserver le format original de chaque ligne, je ferais à peu près pareil, mais je stockerais également la ligne lu ci-dessus dans l'objet.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
giovanni
justement je sais pas comment l'ecrire lire un fichier oui
fichier.open("test.txt", ios::in); while (!fichier.eof()) { fichier >> nb_0 >> nb_1 >> nb_2 >> nb_3>> nb_4 >> nb_5 ; fichier2.open("test.txt", ios::in); if(!fichier2){ cerr << "erreur: ne s'ouvre pas n"; exit(1);} while(!fichier2.eof())
mais le probleme c'est je sais pas faire coment charger en vector ligne par ligne et ensuite reprendre une ligne analyser et trier ex 1 5 7 8 2 trier -> 1 2 5 7 8 et faire ca a toute les ligneet ensuite resauver ur un fichier suivant voila "kanze" a écrit dans le message de news:
Marc Boyer wrote:
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut discuter un peu la modélisation de chaque ligne, une classe Ligne, un tableau de 5 int ou un vector d'int.
La question, je crois, c'es s'il veut canoniser le format de la ligne ou non. A priori, je verrais bien une classe qui encapsule les cinq entiers, avec des opérateurs <, << et >> qui conviennent, et ensuite:
(Sauf qu'évidemment, il faudrait des vérifications des erreurs, surtout après le constructeur de v.)
À titre d'exemple, l'opérateur >> pourrait bien être quelque chose du genre :
std::string line ; if ( std::getline( src, line ) ) { std::istringstream s( line ) ; int i1, i2, i3, i4, i5 ; s >> i1 >> i2 >> i3 >> i4 >> i5 >> std::ws ; if ( ! s || s.peek() != EOF ) { src.setstate( std::ios::failbit ) ; } else { // Affecter les cinq entiers à leur dest. finale. } } return src ;
S'il faut conserver le format original de chaque ligne, je ferais à peu près pareil, mais je stockerais également la ligne lu ci-dessus dans l'objet.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
justement je sais pas comment l'ecrire lire un fichier oui
fichier.open("test.txt", ios::in);
while (!fichier.eof()) {
fichier >> nb_0 >> nb_1 >> nb_2 >> nb_3>> nb_4 >> nb_5 ;
fichier2.open("test.txt", ios::in);
if(!fichier2){
cerr << "erreur: ne s'ouvre pas n";
exit(1);}
while(!fichier2.eof())
mais le probleme c'est je sais pas faire coment charger en vector ligne par
ligne et ensuite reprendre une ligne analyser et trier ex 1 5 7 8 2
trier -> 1 2 5 7 8 et faire ca a toute les ligneet ensuite resauver ur un
fichier suivant voila
"kanze" <kanze@gabi-soft.fr> a écrit dans le message de news:
1140081628.554593.311350@f14g2000cwb.googlegroups.com...
Marc Boyer wrote:
ok je reformule
charger un fichier du type text : 1 2 3 4 5
6 7 1 2 3
etc
en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5
1 2 3 6 7
etc
et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut
discuter un peu la modélisation de chaque ligne, une classe
Ligne, un tableau de 5 int ou un vector d'int.
La question, je crois, c'es s'il veut canoniser le format de la
ligne ou non. A priori, je verrais bien une classe qui encapsule
les cinq entiers, avec des opérateurs <, << et >> qui conviennent,
et ensuite:
justement je sais pas comment l'ecrire lire un fichier oui
fichier.open("test.txt", ios::in); while (!fichier.eof()) { fichier >> nb_0 >> nb_1 >> nb_2 >> nb_3>> nb_4 >> nb_5 ; fichier2.open("test.txt", ios::in); if(!fichier2){ cerr << "erreur: ne s'ouvre pas n"; exit(1);} while(!fichier2.eof())
mais le probleme c'est je sais pas faire coment charger en vector ligne par ligne et ensuite reprendre une ligne analyser et trier ex 1 5 7 8 2 trier -> 1 2 5 7 8 et faire ca a toute les ligneet ensuite resauver ur un fichier suivant voila "kanze" a écrit dans le message de news:
Marc Boyer wrote:
ok je reformule charger un fichier du type text : 1 2 3 4 5 6 7 1 2 3 etc en memoire taille du fichier inconnu !
ensuite quand en memoire faire un tri ex: 1 2 3 4 5 1 2 3 6 7 etc et resauver le fichier trier
Et bien il suffit de faire une std::vector de ligne. On peut discuter un peu la modélisation de chaque ligne, une classe Ligne, un tableau de 5 int ou un vector d'int.
La question, je crois, c'es s'il veut canoniser le format de la ligne ou non. A priori, je verrais bien une classe qui encapsule les cinq entiers, avec des opérateurs <, << et >> qui conviennent, et ensuite:
(Sauf qu'évidemment, il faudrait des vérifications des erreurs, surtout après le constructeur de v.)
À titre d'exemple, l'opérateur >> pourrait bien être quelque chose du genre :
std::string line ; if ( std::getline( src, line ) ) { std::istringstream s( line ) ; int i1, i2, i3, i4, i5 ; s >> i1 >> i2 >> i3 >> i4 >> i5 >> std::ws ; if ( ! s || s.peek() != EOF ) { src.setstate( std::ios::failbit ) ; } else { // Affecter les cinq entiers à leur dest. finale. } } return src ;
S'il faut conserver le format original de chaque ligne, je ferais à peu près pareil, mais je stockerais également la ligne lu ci-dessus dans l'objet.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Marc Boyer
Le 17-02-2006, giovanni a écrit :
Bonjour,
c'est peut-être du à une méconnaissance des usages Usenet, mais il y a deux trois règles si on veut obtenir de l'aide dans un forum, dont la manière de répondre (on répond en dessous du texte de la personne à laquelle on répond, écrire en Français avec des phrases, des verbes et des points, etc).
http://usenet-fr.news.eu.org/fr-chartes/
justement je sais pas comment l'ecrire lire un fichier oui
fichier.open("test.txt", ios::in); while (!fichier.eof()) { fichier >> nb_0 >> nb_1 >> nb_2 >> nb_3>> nb_4 >> nb_5 ; fichier2.open("test.txt", ios::in); if(!fichier2){ cerr << "erreur: ne s'ouvre pas n"; exit(1);} while(!fichier2.eof())
Avez-vous un livre de C++ sous la main ?
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain
Le 17-02-2006, giovanni <giovannisch@hotmail.com> a écrit :
Bonjour,
c'est peut-être du à une méconnaissance des usages Usenet,
mais il y a deux trois règles si on veut obtenir de l'aide
dans un forum, dont la manière de répondre (on répond en
dessous du texte de la personne à laquelle on répond,
écrire en Français avec des phrases, des verbes et
des points, etc).
http://usenet-fr.news.eu.org/fr-chartes/
justement je sais pas comment l'ecrire lire un fichier oui
fichier.open("test.txt", ios::in);
while (!fichier.eof()) {
fichier >> nb_0 >> nb_1 >> nb_2 >> nb_3>> nb_4 >> nb_5 ;
fichier2.open("test.txt", ios::in);
if(!fichier2){
cerr << "erreur: ne s'ouvre pas n";
exit(1);}
while(!fichier2.eof())
Avez-vous un livre de C++ sous la main ?
Marc Boyer
--
Entre le fort et le faible, c'est la liberte qui opprime et le droit
qui libere. Henri Lacordaire, Dominicain
c'est peut-être du à une méconnaissance des usages Usenet, mais il y a deux trois règles si on veut obtenir de l'aide dans un forum, dont la manière de répondre (on répond en dessous du texte de la personne à laquelle on répond, écrire en Français avec des phrases, des verbes et des points, etc).
http://usenet-fr.news.eu.org/fr-chartes/
justement je sais pas comment l'ecrire lire un fichier oui
fichier.open("test.txt", ios::in); while (!fichier.eof()) { fichier >> nb_0 >> nb_1 >> nb_2 >> nb_3>> nb_4 >> nb_5 ; fichier2.open("test.txt", ios::in); if(!fichier2){ cerr << "erreur: ne s'ouvre pas n"; exit(1);} while(!fichier2.eof())
Avez-vous un livre de C++ sous la main ?
Marc Boyer -- Entre le fort et le faible, c'est la liberte qui opprime et le droit qui libere. Henri Lacordaire, Dominicain