Bonjour

Mon programme est suppose accepter des lignes de commandes et d'ecrire continuellement sur un fichier specifie l'utilisateur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "header.h"
 
static FILE *sf;
static char fname[30];
static char com[81];
 
int newfile ( )
{
  char *p;
  printf ("\nPlease, specify a filename: " );
  gets(fname);
  createfile(fname);
  return 0;
}
 
void createfile(char file[]){
   sf = fopen(file, "w");
   if ( sf != NULL ) {
      printf("\nFile \"%s\" created.\n", file);
      printf("Enter commands : \n");
      fclose (sf);
      }
}
 
void append(char file[]){
   sf = fopen(fname,"a");
   if ( sf != NULL ) {
       fprintf(sf, "%s\n", com);
       fclose(sf);
       }
}
 
int main (void) {
 printf("Enter commands : \n");
 while ( strcmp(com, "quit") != 0 ) {
   printf("\t >  ");
   gets(com);
   if (sf == NULL) {
      printf("\nError, no script file detected.\n ");
      newfile();
      append(fname);
      }
   }
return 0;
}
probleme 1: J'arrive pas a utiliser fgets() au lieu de gets().

probleme 2: Le fichier est suppose contenir toutes les lignes de commande entrees, pourquoi il ne contient que la premiere ?

Merci de m'eclairer