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 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
# define FILENAME "input.dat"
int main ( void )
{
char fname [21];
char buffer [81];
int i, count=1;
int count2=1;
int x;
FILE * fp, * inptr, * inptr2;
printf("Enter file name: ");
scanf("%s", fname);
if (strcmp ( fname, FILENAME ))
{
printf("Unable to open file specified!\n");}
/* -ed- Mauvais anglais. A quoi sert ce code ?
Soit le nom est connu et tu ne dois pas le saisir,
soit c'est l'utilisateur qui choisit et c'est le test
d'ouverture du fichier qui déterminera si le fichier
est connu ou non. */
else
{
fp = fopen ( FILENAME, "r" );
inptr = fopen ( "east.dat", "w");
inptr2 = fopen ( "west.dat", "w");
/* -ed- Dans la réalité, ne pas oublier de tester la valeur retournée par fopen() avant de l'utiliser */
x = 1;
while ( fgets( buffer, sizeof buffer, fp ) != NULL )
{
fputs( buffer, stdout ); /* -ed- debug, OK */
/* -ed- mise en majuscule de la ligne lue, OK
sizeof buffer n'est pas faux, mais il suffit
de s'arréter au premier 0 rencontré
(fin de chaine).
*/
for ( i = 0; i < sizeof buffer; i++)
{
buffer[i] = toupper(buffer[i]);
}
/* -ed- Ah, enfin. OK. */
if (x==1)
{
x = 0;
/* -ed- écriture directe dans le fichier , oui, bien sûr. OK. */
fprintf(inptr, "Roster#%i - %s", count++, buffer);
}
else
{
x=1;
fprintf(inptr2, "Roster#%i - %s", count2++, buffer);} /* -ed- C'est quoi ce } ?*/
}
/* -ed- j'ai toujours pas compris le rôle de cette ligne.
A supprimer. */
fgets(buffer, 81, fp);
}
fclose(fp);
fclose(inptr);
fclose(inptr2);
return 0;
} |
Partager