Comprendre le commandes Cpp

smail82 Messages postés 112 Statut Membre -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je veux bien comrendre le programme suivant les commandes utiliser pour traiter les file Fil *fichier ...
est ce que il ya quelque pour m'aider a comprendre les commandes utilisées dans le code suivant:

#include <stdio.h>
#include <conio.h>

void main ()
{
FILE *fichier;
int i,n;
fichier = fopen ("nombre.dat","wb+");

for (i=0;i<10;i++)
{
printf ("N=");
scanf("%d",&n);
putw(n,fichier);
}

2 réponses

smail82 Messages postés 112 Statut Membre 3
 
sam
0
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
Bonjour,

Tout d'abord, il s'agit de C et non de C++.
Ensuite, c'est dommage d'inclure <conio.h> qui enlève la portabilité alors que tu ne te sers pas de ses fonctions.
Le prototype de main() sans argument, c'est : int main(void) et non void main(); Du coup, il ne faut pas oublier le "return 0;" ) la fin.
Et enfin, on n'oublie pas de fermer un fichier ouvert. Même si le return 0; final ferme souvent tous les fichiers ouverts, cela n'est pas un comportement standard.
Ce qui donne le programme suivant (avec des commentaires) :
/*on insère en début de fichier, les lignes du fichier stdio.h qui contient les prototypes des fonctions entrées/sorties*/
#include <stdio.h> 

int main (void) 
{ 
/*déclaration des variables*/
FILE *fichier; 
int i,n; 

/*on ouvrele fichier "nombre.dat" en lecture/écriture (si le fichier existe, les lignes seront supprimées, sinon le fichier sera créé). Et enfin le "b" est inutile, il sera même ignoré par le compilateur*/
fichier = fopen ("nombre.dat","wb+"); 

/*on effectue 10 itérations, et on incrémente i à chaque itération*/
for (i=0;i<10;i++) 
{ 
/*on affiche "N=" à l'écran*/
printf ("N="); 
/*l'utilisateur tape la valeur qu'il souhaite et valide. La valeur sera stockée dans n*/
scanf("%d",&n); 
/*on écrire le nombre n dans le fichier*/
putw(n,fichier); 
/*Il manquait une accolade dans ton programme*/
}
/*fermeture du fichier. On met NULL dans fichier. C'est une bonne habitude à prendre, même si inutile ici*/
fclose(fichier),fichier=NULL;
/*fin du programme. Il s'est déroulé correctement*/
return 0;
} 


Cdlt,
0