Bonjour à tous,
Je dois optimisez un programme en C. Mon programme s'exécute sous unix sous la forme suivante:
./monprogramme < fichierEntree > fichierSortie
Exemple de fichier d'entrée:
10
25
100
0
Exemple de fichier de sortie:
1
4
16
J'ai choisi de lire le fichier avec la fonction fgets et d'écrire avec la fonction write (je suis obligé d'écrire avec la fonction write).
Attention les fichiers d'entrée et sortie étant insérés comme des flux, il n'y a donc pas d'ouverture de fichier.
Lecture
Après vérification la variable n se remplit correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 while (n != 0) { fgets(line, sizeof line, stdin); // lecture de toute un ligne sscanf(line, "%d", &n); // on stock la ligne dans un entier if (n == 0) break; // Sortir sans faire le calcul pour n = 0 clean(line); // On vide le buffer de fgets Cal(); };
Dans la fonction Cal se trouve un entier que j'aimerais écrire.
Ecriture
En revanche, aucune écriture ne se réalise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 int tri; // calcul de tri write(1, &tri, sizeof tri);
Merci infiniment, je n'ai plus d'idée, j'ai l'impression d'avoir tout essayé...
Partager