Les fichiers texte sont généralement organisés en lignes, c.-à-d. la fin d'une information dans le fichier est marquée par le symbole '\n':
a) Ecrire une information dans un fichier séquentiel
Ecrire dans un fichier séquentiel en langage algorithmique
écrire <Nom>:<Expr1> écrire <Nom>:<Expr2> ... écrire <Nom>:<ExprN>
* <Nom> est une chaîne de caractères constante ou une variable de type chaîne qui représente le nom du fichier dans lequel on veut écrire.
* <Expr1>, <Expr2>, ... , <ExprN> représentent les rubriques qui forment un enregistrement et dont les valeurs respectives sont écrites dans le fichier.
Ecrire dans un fichier séquentiel en langage C - fprintf
fprintf( <FP>, "<Form1>\n", <Expr1>); fprintf( <FP>, "<Form2>\n", <Expr2>); ... fprintf( <FP>, "<FormN>\n", <ExprN>);
ou bien
fprintf(<FP>,"<Form1>\n<Form2>\n...\n<FormN>\n", <Expr1>, <Expr2>, ... , <ExprN>);
* <FP> est un pointeur du type FILE* qui est relié au nom du fichier cible.
* <Expr1>, <Expr2>, ... , <ExprN> représentent les rubriques qui forment un enregistrement et dont les valeurs respectives sont écrites dans le fichier.
* <Form1>, <Form2>, ... , <FormN> représentent les spécificateurs de format pour l'écriture des différentes rubriques (voir chapitre 4.3.).
Remarque
L'instruction
fprintf(stdout, "Bonjour\n");
est identique à
printf("\Bonjour\n");
Attention !
Notez que fprintf (et printf) écrit toutes les chaînes de caractères sans le symbole de fin de chaîne '\0'. Dans les fichiers texte, il faut ajouter le symbole de fin de ligne '\n' pour séparer les données.
b) Lire une information dans un fichier séquentiel
Lire dans un fichier séquentiel en langage algorithmique
lire <Nom>:<Var1> lire <Nom>:<Var2> ... lire <Nom>:<VarN>* <Nom> est une chaîne de caractères constante ou une variable de type chaîne qui représente le nom du fichier duquel on veut lire.
* <Var1>, <Var2>, ... , <VarN> représentent les variables qui vont recevoir les valeurs des différentes rubriques d'un enregistrement lu dans le fichier.
Lire dans un fichier séquentiel en langage C - fscanf
fscanf( <FP>, "<Form1>\n", <Adr1>); fscanf( <FP>, "<Form2>\n", <Adr2>); ... fscanf( <FP>, "<FormN>\n", <AdrN>);
ou bien
fscanf(<FP>,"<Form1>\n<Form2>\n...\n<FormN>\n", <Adr1>, <Adr2>, ... , <AdrN>);* <FP> est un pointeur du type FILE* qui est relié au nom du fichier à lire.
* <Adr1>, <Adr2>, ... , <AdrN> représentent les adresses des variables qui vont recevoir les valeurs des différentes rubriques d'un enregistrement lu dans le fichier.
* <Form1>, <Form2>, ... , <FormN> représentent les spécificateurs de format pour la lecture des différentes rubriques (voir chapitre 4.4.).
Remarque
L'instruction
fscanf(stdin, "%d\n", &N);est identique à
scanf("%d\n", &N);Attention !
Pour les fonctions scanf et fscanf tous les signes d'espacement sont équivalents comme séparateurs. En conséquence, à l'aide de fscanf, il nous sera impossible de lire toute une phrase dans laquelle les mots sont séparés par des espaces.