Bonjour et bienvenue à nouveau.
Dans cette conférence, je veux parler d'écriture dans un fichier.
Nous allons nous concentrer lors de l'écriture dans un fichier texte.
Ce que nous allons apprendre est comment vous pouvez écrire des caractères, comment vous pouvez
écrire des chaînes et comment vous pouvez écrire une sortie formatée.
Les trois façons aussi que nous avons pu lire.
Il y a donc trois fonctions qui vous devez
vraiment être familier pour faire ces choses.
L'opération d'écriture la plus simple est fourni dans la fonction fputc.
Donc juste comme il y avait un fgetc pour lire des caractères, il
existe un fputc pour écrire des caractères.
Cela écrira un seul caractère dans un fichier texte, fputc.
Pas aussi efficace que l'écriture cordes, mais parfois nécessaires.
Il prend un entier comme son premier paramètre et un pointeur de fichier
comme deuxième paramètre et renvoie un entier.
La fonction écrit le caractère spécifié
par le premier argument du fichier identifié par le deuxième argument.
Ainsi, le pointeur de fichier représente ce qu'il fait toujours: le fichier dans
lequel vous voulez écrire.
Et puis le personnage que tu voulez réellement
écrire est votre premier paramètre.
Le caractère renvoyé est ce que a été écrit en cas de succès.
Rappelez-vous, si elle renvoie eof, cela signifie que c'était un échec.
S'il renvoie autre chose que le eof, cela signifie que c'était un succès.
En pratique, les personnages sont généralement pas écrit dans un
fichier physique un par un.
C'est extrêmement inefficace.
La fonction putc est la équivalent au fputc.
Vous voyez souvent cela également utilisé.
Il nécessite les mêmes arguments et le type de retour est le même.
La différence entre eux est que le putc peut être implémenté dans la
bibliothèque standard en tant que macro.
Alors que fputc est une fonction donc.
Pas une tonne de différences, mais nous n'avons pas entendu parler des macros.
Alors on va s'en tenir à fputc pour écrire des caractères uniques.
Et pour un exemple, c'est assez simple.
Première chose à faire comme toujours est-ce que vous devez ouvrir le fichier.
Avant cela, nous déclarons notre variables, nous déclarons un pointeur de fichier, doit être
initialisé à la valeur null.
Et puis notre entier qui nous allons écrire.
Lorsque nous ouvrirons notre dossier, vous remarquez que nous faisons un w ou un w plus.
W signifie que nous allons écrivez seulement, vous ne pouvez pas lire.
W plus signifie que vous pouvez écrire et lire.
Dans ce cas, nous pouvons écrire et lire.
Ici, nous avons une boucle for.
Nous traversons tous les caractères de 33 à 100.
Quand ce sont des entiers, qu'est-ce cela signifie que le caractère est
représenté dans la table ASCII.
Donc si vous écrivez un caractère par exemple 59, vous devez le rechercher dans le
tableau ASCII pour voir ce qu'il représente, mais ce serait un personnage réel.
Ici nous sommes juste en train d'écrire ASCII vaut 33 à 100,
et nous disons fputc char fp.
Et vous pouvez utiliser la conversion fonctions si vous souhaitez
créer des valeurs ASCII et des entiers, vous pouvez simplement utiliser un atoi.
Donc, si vous vouliez écrire le caractère c, vous pouvez dire fputc atoi,
puis mettre c entre guillemets simples.
Ce serait bien aussi car il convertirait l'ASCII
en entier et l'écrirait.
Mais le premier argument est un entier, vous devez donc écrire un entier.
Le deuxième argument est notre fichier pointeur, assez simple là-bas.
Et puis la dernière chose que nous devons faire est que nous devons fermer ce fichier.
Nous voulons probablement aussi définissez le pointeur fp sur null.
Mais encore une fois, cela prend un entier.
Soyez donc prudent là-bas.
C'est toujours représenté dans la table ASCII.
Mais vous pouvez convertir le réel caractères deux entiers utilisant atoi.
Que diriez-vous d'écrire une chaîne vers un fichier
texte, beaucoup plus utile, plus efficace.
C'est là que vous utilisez la fonction fputs.
Cela vous permettra de écrire dans n'importe quel fichier ou flux.
C'est similaire aux fgets, il prend une chaîne de charge constante que vous voulez écrire
en tant que premier paramètre du pointeur.
Et il en faut un, comme notre deuxième paramètre, le pointeur de fichier, dans
quel fichier vous voulez écrire.
Et puis il renvoie un int.
Donc le premier argument est notre pointez sur la chaîne de caractères
que vous souhaitez écrire.
Le deuxième argument est le fichier pointeur lui-même, et la fonction écrira des
caractères à partir d'une chaîne jusqu'à ce qu'il atteigne le terminateur nul.
Il n'écrit pas le null caractère de terminaison dans le fichier,
vous devez donc l'écrire explicitement.
Cela peut compliquer les choses car lorsque vous relisez les données,
elles peuvent être de longueur variable et ne se terminera pas au terminateur nul.
Donc, vous devez - vous attendre à
ce qu'il écrive un ligne de texte qui a un caractère de
nouvelle ligne à la fin.
Alors assurez-vous que vous êtes familier avec le
terminateur nul et soit l'écrire explicitement en utilisant fputc, un seul caractère ou écrivez-le et il ajoutera essentiellement le
caractère de nouvelle ligne à la fin après l'avoir écrit.
Donc il s'attend à ce nouveau caractère de ligne pour être là.
Vous devez le spécifier explicitement.
C'est assez simple en termes de code.
Vous dites juste fopen.
Fputs, écrit une chaîne dans le nouvelle ligne à l'aide du pointeur de fichier.
Et puis un autre fputs ici écrit une autre chaîne, puis vous la fermez.
Donc dans ce cas, nous avons écrit deux chaînes, deux lignes de code en fait ou deux
lignes dans le fichier et nous a ouvert le fichier avec w plus c'est pour
la lecture et l'écriture.
Les exemples d'écriture sont assez simple.
Vous appelez juste quelques fonctions, fopen, puis fputs, puis fclose.
Maintenant, pour écrire une sortie formatée, nous allons utiliser fprintf.
Encore une fois, vous remarquerez qu'avec le scanf à lire et
à saisir et le printf, il suffit d'ajouter fprefix avant la fonction
et vous écrivez une sortie formatée.
Donc pour écrire une sortie formatée avec fprintf, il renvoie un entier.
Il faut un flux de fichiers comme le
premier paramètre, puis les spécificateurs de format sont suivis par des virgules avec un nombre
variable d'arguments pour chaque format spécificateur tout comme printf vraiment.
Le premier argument de la fonction est le pointeur vers l'objet fichier.
Et puis le deuxième argument est ces nombres variables d'arguments.
C'est une chaîne C qui en contient une ou
plusieurs des éléments suivants, caractère d'espacement, un non-espace caractère, spécificateurs de format.
Et encore une fois, c'est très similaire à printf.
Mais vous écrivez en fait dans un fichier.
Ainsi, vous pouvez écrire formaté sortie dans un fichier.
Si c'est réussi, il reviendra le nombre de caractères écrits.
Sinon, ça va renvoie un nombre négatif si
ce n'est pas réussi.
Cela ressemble à quelque chose comme ça.
Vous incluez l'en-tête d'E / S standard.
Vous créez votre pointeur de fichier.
Vous utilisez ensuite votre pointeur de fichier pour ouvrir un fichier texte, utilisez-le pour w
plus pour lire et écrire et puis vous dites simplement fprintf.
Dans ce cas, nous disons fprintf.
Nous spécifions le fichier pointeur, puis nous spécifions quatre chaînes séparées
par un espace puis un pour cent d.
Et nous écrivons bonjour mon numéro est le 555.
Donc, le fichier va avoir les données formatées lorsque vous les écrivez.
Regardons cela dans les blocs de code et voyez à quoi il ressemble.
Il n'y a donc pas beaucoup de code ici.
Nous n'avons que quelques lignes de code.
Sur la ligne quatre, nous sommes création de notre pointeur de fichier.
Et encore une fois, nous voudrons initialisez ceci à null.
Ensuite, à la ligne six, nous appelons fopen.
Et nous disons ouvrir le fichier. txt, de sorte que déposer. txt doit exister et soit
l'endroit où le fichier source c est en cours d'exécution ou si vous
exécutez le programme manuellement où que se trouve l'exécutable.
Nous allons ouvrir pour lire et écrire.
Après l'avoir ouvert, nous voulons nous assurer que le pointeur
de fichier n'est pas nul.
Nous voulons donc dire non fp.
Si ce n'est pas nul, alors nous peut commencer à écrire des données.
Et dans ce cas, à la ligne 9, nous sommes va écrire des données formatées.
Donc ce que nous allons écrire est nous allons écrire une chaîne,
deux chaînes trois chaînes, quatre chaîne, puis un entier.
Et puis les paramètres suivants sont juste des chaînes séparées par des
virgules ainsi que notre entier à la fin.
Je dois juste réparer ces doubles cite parce que cela ne fonctionne pas bien, donc 555
est juste à la fin.
Et ça va ensuite se fermer le fichier et le renvoyer.
Alors allons-y et essayons de construire ceci et exécutez-le et nous n'allons voir aucune
sortie réelle pour l'exécution.
Nous allons devoir regarder à quoi ressemble le fichier.
Ainsi, lorsque nous compilons ce fichier, vous voulez vous assurer que
votre instruction if est différente de null.
Alors quand on lance ça, encore une fois, vous n'allez voir
aucune sortie, il va simplement s'exécuter.
Et puis quand tu regardes le fichier à l'intérieur du répertoire, vous
verrez qu'il contient l'entrée dans un seul ligne, bonjour mon nom est fpp ou au 555.
Alors c'est comme ça que tu peux écrire une sortie formatée.
C'est assez simple.
Vous pourriez ajouter de nouveaux lignes si vous le vouliez.
Il ajoutera une nouvelle ligne à la fin, mais vous pouvez mettre une barre oblique inverse n ici.
Cela fonctionne exactement comme printf.
Encore une fois, nous devons l'exécuter, nous ne voyez pas vraiment de sortie intéressante jusqu'à ce
que vous regardiez le fichier.
Et dans ce cas, vous voyez un saut de ligne.
Donc écrire la sortie dans un fichier est assez simple.
Vous voulez écrire des personnages,
vous faire fputc, vous voulez écrire des chaînes fputs, sortie formatée fprintf.
Nous aurons des défis qui vous aider à vous
familiariser encore plus avec cela, mais assez facile à écrire la sortie dans un fichier texte.
Merci.