Je souhaite enregister le resultat de mes calculs dans un fichier. Le
probleme est que le nombre de colonnes est variable.
Typiquement, voila ce qu'on fait:
Finalement, j'ai choisi une solution moins casse-bonbon.
Maquelle ? C'est bien d'avoir un feedback, pour vous comme pour ceux qui répondent.
-- http://patrick.davalan.free.fr/
Harpo
Pierre Maurette wrote:
Finalement, j'ai choisi une solution moins casse-bonbon.
(...)
Il fallait que cela soit précisé. Et pour les grincheux, précisons que si le rapport avec le langage C et sa p..... de norme est lointain, il est évident.
Elle est casse-bonbpns ?
-- http://patrick.davalan.free.fr/
Pierre Maurette wrote:
Finalement, j'ai choisi une solution moins casse-bonbon.
(...)
Il fallait que cela soit précisé. Et pour les grincheux, précisons que
si le rapport avec le langage C et sa p..... de norme est lointain, il
est évident.
Finalement, j'ai choisi une solution moins casse-bonbon.
(...)
Il fallait que cela soit précisé. Et pour les grincheux, précisons que si le rapport avec le langage C et sa p..... de norme est lointain, il est évident.
Elle est casse-bonbpns ?
-- http://patrick.davalan.free.fr/
Zulfukar Arslan
Harpo wrote:
Zulfukar Arslan wrote:
Finalement, j'ai choisi une solution moins casse-bonbon.
Maquelle ? C'est bien d'avoir un feedback, pour vous comme pour ceux qui répondent.
Bah je veux bien passer 5 minutes pour expliquer tout ca.
Disons qu'au départ je voulais enregistrer le résultat de mes calculs dans mon "main". Et dans ce main, il y a une boucle a l'interieur de laquelle j'enregistre mes resultats avec un nombre de colonne a chaque fois different. Ma premiere question etait donc de savoir comment faire pour faire comprendre au compilo:
"attention ! je suis dans une boucle ou le nombre de colonnes est variable."
D'où l'impossibilité d'ecrire un truc du genre printf(file, "%f %fn", float1, float2);
Du coup, et la ca se complique tellement que je ne vois pas comment vous raconter la suite. Pour ca il faudrait vous expliquer le probleme dans son ensemble, chose impossible.
Je suis passé par un premier fichier ou je ne mets que 2 colonnes, et ensuite, j'ecris un petit code qui relie chacune des lignes de ce deuxieme fichier a une autre ligne d'un autre fichier deja existant, et qui remplit le tout dans un troisieme.
COMPLIQUE!!
Harpo wrote:
Zulfukar Arslan wrote:
Finalement, j'ai choisi une solution moins casse-bonbon.
Maquelle ? C'est bien d'avoir un feedback, pour vous comme pour ceux qui
répondent.
Bah je veux bien passer 5 minutes pour expliquer tout ca.
Disons qu'au départ je voulais enregistrer le résultat de mes calculs
dans mon "main".
Et dans ce main, il y a une boucle a l'interieur de laquelle
j'enregistre mes resultats avec un nombre de colonne a chaque fois
different.
Ma premiere question etait donc de savoir comment faire pour faire
comprendre au compilo:
"attention ! je suis dans une boucle ou le nombre de colonnes est variable."
D'où l'impossibilité d'ecrire un truc du genre printf(file, "%f %fn",
float1, float2);
Du coup, et la ca se complique tellement que je ne vois pas comment vous
raconter la suite. Pour ca il faudrait vous expliquer le probleme dans
son ensemble, chose impossible.
Je suis passé par un premier fichier ou je ne mets que 2 colonnes, et
ensuite, j'ecris un petit code qui relie chacune des lignes de ce
deuxieme fichier a une autre ligne d'un autre fichier deja existant, et
qui remplit le tout dans un troisieme.
Finalement, j'ai choisi une solution moins casse-bonbon.
Maquelle ? C'est bien d'avoir un feedback, pour vous comme pour ceux qui répondent.
Bah je veux bien passer 5 minutes pour expliquer tout ca.
Disons qu'au départ je voulais enregistrer le résultat de mes calculs dans mon "main". Et dans ce main, il y a une boucle a l'interieur de laquelle j'enregistre mes resultats avec un nombre de colonne a chaque fois different. Ma premiere question etait donc de savoir comment faire pour faire comprendre au compilo:
"attention ! je suis dans une boucle ou le nombre de colonnes est variable."
D'où l'impossibilité d'ecrire un truc du genre printf(file, "%f %fn", float1, float2);
Du coup, et la ca se complique tellement que je ne vois pas comment vous raconter la suite. Pour ca il faudrait vous expliquer le probleme dans son ensemble, chose impossible.
Je suis passé par un premier fichier ou je ne mets que 2 colonnes, et ensuite, j'ecris un petit code qui relie chacune des lignes de ce deuxieme fichier a une autre ligne d'un autre fichier deja existant, et qui remplit le tout dans un troisieme.
COMPLIQUE!!
Harpo
Zulfukar Arslan wrote:
Harpo wrote:
Zulfukar Arslan wrote:
Finalement, j'ai choisi une solution moins casse-bonbon.
Maquelle ? C'est bien d'avoir un feedback, pour vous comme pour ceux qui répondent.
Bah je veux bien passer 5 minutes pour expliquer tout ca.
Disons qu'au départ je voulais enregistrer le résultat de mes calculs dans mon "main". Et dans ce main, il y a une boucle a l'interieur de laquelle j'enregistre mes resultats avec un nombre de colonne a chaque fois different. Ma premiere question etait donc de savoir comment faire pour faire comprendre au compilo:
Je ne pense pas que ce soit vraiment au compilo de le faire comprendre, d'une manière ou d'une autre, il faut faire une boucle.
"attention ! je suis dans une boucle ou le nombre de colonnes est variable."
D'où l'impossibilité d'ecrire un truc du genre printf(file, "%f %fn", float1, float2);
Du coup, et la ca se complique tellement que je ne vois pas comment vous raconter la suite. Pour ca il faudrait vous expliquer le probleme dans son ensemble, chose impossible.
Je suis passé par un premier fichier ou je ne mets que 2 colonnes, et ensuite, j'ecris un petit code qui relie chacune des lignes de ce deuxieme fichier a une autre ligne d'un autre fichier deja existant, et qui remplit le tout dans un troisieme.
COMPLIQUE!!
Pourquoi faire simple...
La solution de Vincent Leèvre est probablement la plus simple : int i; FILE * file; char * colonne; ..... // on suppose le fichier ouvert // tu récupère le nombre de colonnes dans i for ( ; i--; ) { int rc; // tu récupère l'adresse de la colonne dans colonne rc = fputs( colonne, file ); if ( rc == EOF ) { fprintf( stderr, "fputs 1: Erreur à l'écriture de monfichiern" ); abort( ); } if ( i > 0 ) { rc = fputs( "t", file ); if ( rc == EOF ) { fprintf( stderr, "fputs 2; Erreur à l'écriture de monfichiern" ); abort( ); } } else { rc = fputs( "n", file ); if ( rc == EOF ) { fprintf( stderr, "fputs 3; Erreur à l'écriture de monfichiern" ); abort( ); } } }
-- http://patrick.davalan.free.fr/
Zulfukar Arslan wrote:
Harpo wrote:
Zulfukar Arslan wrote:
Finalement, j'ai choisi une solution moins casse-bonbon.
Maquelle ? C'est bien d'avoir un feedback, pour vous comme pour ceux
qui répondent.
Bah je veux bien passer 5 minutes pour expliquer tout ca.
Disons qu'au départ je voulais enregistrer le résultat de mes calculs
dans mon "main".
Et dans ce main, il y a une boucle a l'interieur de laquelle
j'enregistre mes resultats avec un nombre de colonne a chaque fois
different.
Ma premiere question etait donc de savoir comment faire pour faire
comprendre au compilo:
Je ne pense pas que ce soit vraiment au compilo de le faire comprendre,
d'une manière ou d'une autre, il faut faire une boucle.
"attention ! je suis dans une boucle ou le nombre de colonnes est
variable."
D'où l'impossibilité d'ecrire un truc du genre printf(file, "%f %fn",
float1, float2);
Du coup, et la ca se complique tellement que je ne vois pas comment
vous raconter la suite. Pour ca il faudrait vous expliquer le probleme
dans son ensemble, chose impossible.
Je suis passé par un premier fichier ou je ne mets que 2 colonnes, et
ensuite, j'ecris un petit code qui relie chacune des lignes de ce
deuxieme fichier a une autre ligne d'un autre fichier deja existant,
et qui remplit le tout dans un troisieme.
COMPLIQUE!!
Pourquoi faire simple...
La solution de Vincent Leèvre est probablement la plus simple :
int i;
FILE * file;
char * colonne;
.....
// on suppose le fichier ouvert
// tu récupère le nombre de colonnes dans i
for ( ; i--; ) {
int rc;
// tu récupère l'adresse de la colonne dans colonne
rc = fputs( colonne, file );
if ( rc == EOF ) {
fprintf( stderr, "fputs 1: Erreur à l'écriture de
monfichiern" );
abort( );
}
if ( i > 0 ) {
rc = fputs( "t", file );
if ( rc == EOF ) {
fprintf( stderr, "fputs 2; Erreur à l'écriture de
monfichiern" );
abort( );
}
} else {
rc = fputs( "n", file );
if ( rc == EOF ) {
fprintf( stderr, "fputs 3; Erreur à l'écriture de
monfichiern" );
abort( );
}
}
}
Finalement, j'ai choisi une solution moins casse-bonbon.
Maquelle ? C'est bien d'avoir un feedback, pour vous comme pour ceux qui répondent.
Bah je veux bien passer 5 minutes pour expliquer tout ca.
Disons qu'au départ je voulais enregistrer le résultat de mes calculs dans mon "main". Et dans ce main, il y a une boucle a l'interieur de laquelle j'enregistre mes resultats avec un nombre de colonne a chaque fois different. Ma premiere question etait donc de savoir comment faire pour faire comprendre au compilo:
Je ne pense pas que ce soit vraiment au compilo de le faire comprendre, d'une manière ou d'une autre, il faut faire une boucle.
"attention ! je suis dans une boucle ou le nombre de colonnes est variable."
D'où l'impossibilité d'ecrire un truc du genre printf(file, "%f %fn", float1, float2);
Du coup, et la ca se complique tellement que je ne vois pas comment vous raconter la suite. Pour ca il faudrait vous expliquer le probleme dans son ensemble, chose impossible.
Je suis passé par un premier fichier ou je ne mets que 2 colonnes, et ensuite, j'ecris un petit code qui relie chacune des lignes de ce deuxieme fichier a une autre ligne d'un autre fichier deja existant, et qui remplit le tout dans un troisieme.
COMPLIQUE!!
Pourquoi faire simple...
La solution de Vincent Leèvre est probablement la plus simple : int i; FILE * file; char * colonne; ..... // on suppose le fichier ouvert // tu récupère le nombre de colonnes dans i for ( ; i--; ) { int rc; // tu récupère l'adresse de la colonne dans colonne rc = fputs( colonne, file ); if ( rc == EOF ) { fprintf( stderr, "fputs 1: Erreur à l'écriture de monfichiern" ); abort( ); } if ( i > 0 ) { rc = fputs( "t", file ); if ( rc == EOF ) { fprintf( stderr, "fputs 2; Erreur à l'écriture de monfichiern" ); abort( ); } } else { rc = fputs( "n", file ); if ( rc == EOF ) { fprintf( stderr, "fputs 3; Erreur à l'écriture de monfichiern" ); abort( ); } } }