Fonctions d'entrée-sortie dans C |
Le dossier standard d'entrée-sortie
|
Pour exécuter, entrer et rendement dans les dossiers ou la borne, approvisionnements d'UNIX un paquet standard. Pour les employer, ceci contient la plupart des fonctions qui seront présentées dans cette section, avec des définitions des datatypes exigés. Votre programme doit inclure ces définitions en ajoutant la ligne pour employer ces équipements.
début proche du #include <stdio.h> du dossier de programme. Si vous ne faites pas ceci, le compilateur peut se plaindre au sujet des datatypes ou des fonctions non définis.
|
Entrée-sortie de caractère
|
Si vous n'appuierez pas sur la touche de retour puis ils ne commenceront pas à ne lire aucune entrée, et ils n'imprimeront pas des caractères sur la borne jusqu'à ce qu'il y ait une ligne entière à imprimer. C'est le niveau le plus bas du rendement et de l'entrée. Il fournit la commande très précise, mais est habituellement trop fiddly pour être utile également. La plupart des ordinateurs exécutent l'amortissement des entrées et des sorties. Ceux-ci incluent :
- getchar
- putchar
|
getchar
|
getchar renvoie toujours le prochain caractère de l'entrée de clavier en tant qu'interne. L'EOF (extrémité de dossier) est retourné, s'il y a une erreur. Il est habituel pour comparer cette valeur contre l'EOF avant de l'employer. Ainsi des conditions d'erreur ne seront pas manipulées correctement, si la valeur de retour est stockée dans un char, il ne seront jamais égales à l'EOF.
Le programme suivant est employé pour compter le nombre de caractères lus jusqu'à ce qu'un EOF soit produit. L'EOF peut être produit par la commande de dactylographie - D.
|
#include <stdio.h>
main()
{ int ch, i = 0;
while((ch = getchar()) != EOF)
i ++;
printf("%d\n", i);
}
|
|
putchar
|
putchar met son argument de caractère sur le rendement standard (habituellement l'écran).
Le programme suivant d'exemple convertit n'importe quelle entrée dactylographiée en majuscules. Il applique le toupper de fonction à partir de la bibliothèque ctype.h de conversion de caractère à chaque caractère alternativement pour faire ceci.
|
#include <ctype.h> /* For definition of toupper */
#include <stdio.h> /* For definition of getchar, putchar, EOF */
main()
{ int ch;
while((ch = getchar()) != EOF)
putchar(toupper(ch));
}
|
|
Entrée-sortie composée
|
Ceux-ci inclut suivre :
- printf
- scanf
|
printf
|
Ceci offre plus de rendement structuré que putchar. Ses arguments sont, en règle ; une corde de commande, qui commandes ce qui obtiennent imprimées, suivies d'une liste de valeurs à remplacer des entrées dans la corde de commande. Le prototype pour le printf () est :
|
|
int printf(const char *format, ...);
|
|
Pour imprimer, le printf rentre une corde de formatage et les variables réelles. Un exemple de printf est :
|
int x = 5;
char str[] = "abc";
char c = 'z';
float pi = 3.14;
printf("\t%d %s %f %s %c\n", x, str, pi, "WOW", c);
|
|
Avec l'utilisation de la ligne de formatage, vous pouvez composer le rendement. Vous pouvez changer comment la variable particulière est placée dans le rendement, en modifiant les spécifications de conversion. Par exemple
|
|
. tient compte de la précision. Aux flotteurs aussi bien, ceci peut être appliqué. Le numéro 5 est sur le dixième espacement pendant que le numéro 10 met 0005 plus de 10 espaces. Vous pouvez également ajouter - et + droit après % de faire le nombre a explicitement produit en tant que +0005. Noter que la valeur de x ne change pas réellement. En d'autres termes, vous n'obtiendrez pas de produire en utilisant %-10.4d ne produirez pas -0005. %e est utile pour produire des flotteurs en utilisant la notation scientifique. %le pour des doubles et %Le pour les longs doubles.
|
Pour saisir des choses d'entrée, le scanf () est employé. Prendre garde cependant, scanf n'est pas la plus grande fonction que C doit offrir. Certains balayent outre du scanf comme fonction cassée qui ne devrait pas être employée souvent. Le prototype pour le scanf est :
|
Le dernier exemple créera un rectangle avec le coin arrondi :
|
int scanf( const char *format, ...);
|
|
Pour lire des données du clavier, le scanf laisse composé. Comme le printf il fait suivi une corde de commande, de la liste d'articles à lire. Toutefois le scanf veut savoir l'adresse des articles à lire, puisque c'est une fonction qui changera cette valeur. Par conséquent les noms des variables sont précédés par et le signe. Les chaînes de caractères sont une exception à ceci. Puisqu'une corde est déjà un indicateur de caractère, nous donnons les noms des variables de corde non modifiées par mener et. Commander les entrées de corde que des valeurs de match à lire sont précédé par le signe de pourcentage d'une manière semblable à leur équivalent de printf. Regarde semblable au printf, mais ne se comporte pas complètement comme le printf. Prendre l'exemple :
|
|
Pour des choses saisissantes d'entrée. Prendre garde cependant, scanf n'est pas la plus grande fonction que C doit offrir, scanf () est employé. Ce qui suit est l'exemple qui montre l'utilisation du scanf :
|
int x, args;
for ( ; ; ) {
printf("Enter an integer bub: ");
if (( args = scanf("%d", &x)) == 0) {
printf("Error: not an integer\n");
continue;
} else {
if (args == 1)
printf("Read in %d\n", x);
else
break;
}
}
|
|
|
|
Keywords:
c tutorial,
c arrays,
c atoi,
c array,
void c,
c syntax,
functions math,
c time,
c language,
c examples,
format c,
return c,
c library,
array functions,
c programs,
ansi c,
standard c,
c msdn,
c algorithm,
c example,
variable functions,
c program,
functions variables,
unix c,
variable c,
c type,
|