Précédent   Forum du club des développeurs et IT Pro > C et C++ > C > Débuter
Débuter Forum d'entraide pour débuter en langage C. Avant de poster -> FAQ C
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/02/2013, 14h39   #1
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Par défaut Créer un fichier « .h » (menu)

Salut a tous, je suis a bout de souffre. je n'arrive pas a appeler mes programmes.
En fait, mes codes sont très long. Je veux les couper en modules. Voila ce que je fais :


Code :
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
#include<stdio.h> 
#include<stdlib.h> 
#include<conio.h> 
#include<time.h> 
#include"menu.h" //je rattache ma fonction affiche_menu() au main.c 
#include"information.h" //je rattache ma fonction information() au main.c 
int main() 
{ 
char ch = 'A';'B';'C';'D';'E';'F';'G';'H';//Declaration des caracteres 
 
do 
{ 
affiche_menu();//Appelle de la fct affiche_menu 
ch = getch(); 
scanf("%c",&ch); //lecture des characteres. 
switch (ch) 
{ 
case 'A': 
printf("\n\nBienvenue sur le programme permettant de saisir des informations des etudiants\nPressez une touche quelconque"); 
void information(); //j'appelle ma fonction. 
 
getch(); 
break; 
case 'B': 
printf("\n\nBienvenue sur le Programme permettant d afficher les informations saisies au point 1\nPressez une touche quelconque"); 
getch(); 
break; 
case 'C': 
printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque"); 
getch(); 
break; 
case 'D':printf("\n\nBienvenue sur le Programme permettant de trouver la combinaison de deux valeurs entieres"); 
getch(); 
break; 
case 'E':printf("\n\nBienvenue sur le Programme permettant de former l anagramme d un nom d une personne"); 
getch(); 
break; 
case 'F':printf("\n\nBienvenue sur le Programme permettant de changer la date de l ordinateur"); 
getch(); 
break; 
case 'G':printf("\n\nBienvenue sur le Programme permettant d eteindre l ordinateur"); 
getch(); 
break; 
case 'H':printf("\n\nBienvenue sur le Programme permettant de classer par ordre croissant et decroissant des valeurs saisis"); 
getch(); 
break; 
default: 
printf("\n\nVotre choix est erroné\nPressez une touche quelconque et réessayez\n"); 
getch(); 
break; 
} 
} while (ch != '4'); 
return 0; 
}


Ca marche ps,svp j'ai vous prie de m'aider.
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 17h27   #2
Sve@r
Expert Confirmé Sénior
 
Avatar de Sve@r
 
Homme Frédéric
Ingénieur développement logiciels
Inscription : février 2006
Messages : 3 533
Détails du profil
Informations personnelles :
Nom : Homme Frédéric
Âge : 45
Localisation : France, Oise (Picardie)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Aéronautique - Marine - Espace - Armement

Informations forums :
Inscription : février 2006
Messages : 3 533
Points : 7 063
Points : 7 063
Citation:
Envoyé par bazvindous Voir le message
Ca marche ps,svp j'ai vous prie de m'aider.
Salut
http://fr.lang.free.fr/cours/Generalites_Csyst_v1.0.pdf (p. 9 a 11)

Citation:
Envoyé par bazvindous Voir le message
je suis a bout de souffre...
Jolie formule. Plus adaptee a Belzebuth qu'a un humain qui serait plutot a bout de souffle...
__________________
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Tout ce qu'un individu reçoit sans rien faire pour l'obtenir, un autre individu a dû travailler pour le produire sans en tirer profit.
Tout Pouvoir ne peut distribuer aux uns que ce qu'il a préalablement confisqué à d'autres car on n'accroît pas les biens en les divisant.
Quand la moitié d'un peuple croit qu'il ne sert à rien de faire des efforts car l'autre moitié les fera pour elle, et quand cette dernière moitié se dit qu'il ne sert à rien d'en faire car ils bénéficieront à d'autres, cela s'appelle le déclin et la fin d'une nation.
Dr. Adrian Rogers, 1931
Sve@r est actuellement connecté   Envoyer un message privé Réponse avec citation 21
Vieux 23/02/2013, 17h35   #3
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc

La ligne void information(); //j'appelle ma fonction. est mauvaise, elle redéclare la fonction au lieu de l'appeler.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/02/2013, 18h26   #4
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Citation:
Envoyé par Médinoc Voir le message

La ligne void information(); //j'appelle ma fonction. est mauvaise, elle redéclare la fonction au lieu de l'appeler.
Merci pour ta reponce rapide, et remarque. En faite c'est justement ca mes problemes.
J'ai 7 programmes(deja preparer) a mettre dans le menu,mais je ne sais pas comment.
Comme celui-la:
Code :
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
   #include<stdio.h>
    #include<conio.h>
 
    #define max 500
    void information()
 
    {
    char nom[max];
    char prenom[max];
    char adresse[max];
    char sexe[max];
    char option[max];
    int age;
    int telephone;
    printf("");
    gets(nom);
    printf(" Entrer votre nom : \n");
    gets(nom);
    printf("Entrer votre prenom: \n");
    gets(prenom);
     printf("Entrer votre adresse: \n");
    gets(adresse);
     printf("Entrer votre sexe: \n");
    gets(sexe);
     printf("Entrer votre option: \n");
    gets(option);
     printf("Entrer votre age: \n");
    scanf("%d",&age);
     printf("Entrer votre telephone: \n");
    scanf("%d",&telephone);
 
                        //creation d'un pointeur FILE
    FILE*pointeurfichier=NULL;
                        //appel a la fonction fopen
    pointeurfichier=fopen("Les informations des etudians.doc","w");
                        //test sur l'ouverture
    if(pointeurfichier!=NULL)
    {
        fprintf(pointeurfichier,"### les informations ###\n");
        fprintf(pointeurfichier," %s \n",nom);
        fprintf(pointeurfichier,"%s \n", prenom);
        fprintf(pointeurfichier,"%s \n", adresse);
        fprintf(pointeurfichier," %s \n", sexe);
        fprintf(pointeurfichier,"%s \n", option);
        fprintf(pointeurfichier,"%d \n",age);
        fprintf(pointeurfichier,"%d \n",telephone);
    }
    else
    {
        printf("impossible d'ouvrir le fichier");
    }
     fclose(pointeurfichier);
 
 
 
return(0);
 
}
Comment faire(qoui mettre dans le menu) pour l'appeler a l'aide du menu, en tappant A.
merci a tous.
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 18h49   #5
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
D'abord, des fonctions pour la saisie de chaîne sans utiliser gets():
Code C :
1
2
3
4
5
6
7
8
9
10
11
12
/*fpurge.h*/
 
#ifndef FPURGE_H_20130223
#define FPURGE_H_20130223
 
#include <stdio.h>
 
int truncate_newline(char *str);
int fpurge(FILE *f);
int fclean(char *str, FILE *f);
 
#endif /* ! FPURGE_H_20130223 */
Code C :
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
/*fpurge.c*/
#include <stdio.h>
 
/*Fonction pour retirer le \n à la fin d'une chaîne
  (en fait, elle tronque la chaîne au premier \n rencontré).*/
/* Returns a nonzero value if found, zero if not. */
int truncate_newline(char *str)
{
	int bRet=0;
	if(str!=NULL)
	{
		char *pNewline = strchr(str, '\n');
		if(pNewLine!=NULL)
		{
			bRet = 1;
			*pNewLine = '\0';
		}
	}
	return bRet;
}
 
/*Fonction pour vider le flux entrant jusqu'à la fin de la ligne.*/
/*Returns 0 if OK, a negative value if EOF.*/
int fpurge(FILE *f)
{
	int c;
	while((c=fgetc(f))!=EOF && c!='\n')
	{ }
	return (c==EOF ? -1 : 0);
}
 
/*Fonction qui retire le \n à la fin ET s'assure que toute la ligne a été lue.*/ 
/* Returns 0 if buffer is full, a positive value if line is complete,
   a negative value if EOF (implies buffer full). */
int fclean(char *str, FILE *f)
{
	int ret = 1;
	if(!truncate_newline(str))
		ret = fpurge(f);
	return ret;
}
Ensuite, le code utile:
Code C :
1
2
3
4
5
6
7
8
/*Information.h*/
 
#ifndef INFORMATION_H_20130223
#define INFORMATION_H_20130223
 
void information(void);
 
#endif /* ! INFORMATION_H_20130223 */
Code C :
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
/*Information.c*/
#include<stdio.h>
#include "fpurge.h"
 
#define MAX 500
void information(void)
{
	char nom[MAX];
	char prenom[MAX];
	char adresse[MAX];
	char sexe[MAX];
	char option[MAX];
	int age;
	int telephone;
	printf("\n");
 
	printf(" Entrer votre nom : \n");
	fgets(nom, MAX, stdin);
	fclean(nom, stdin);
	printf("Entrer votre prenom: \n");
	fgets(prenom, MAX, stdin);
	fclean(prenom, stdin);
	printf("Entrer votre adresse: \n");
	fgets(adresse, MAX, stdin);
	fclean(adresse, stdin);
	printf("Entrer votre sexe: \n");
	fgets(sexe, MAX, stdin);
	fclean(sexe, stdin);
	printf("Entrer votre option: \n");
	fgets(option, MAX, stdin);
	fclean(option, stdin);
	printf("Entrer votre age: \n");
	scanf("%d",&age);
	fpurge(stdin);
	printf("Entrer votre telephone: \n");
	scanf("%d",&telephone);
	fpurge(stdin);
 
	//creation d'un pointeur FILE
	FILE*pointeurfichier=NULL;
	//appel a la fonction fopen
	pointeurfichier=fopen("Les informations des etudians.txt","w");
	//test sur l'ouverture
	if(pointeurfichier!=NULL)
	{
		fprintf(pointeurfichier,"### les informations ###\n");
		fprintf(pointeurfichier," %s \n",nom);
		fprintf(pointeurfichier,"%s \n", prenom);
		fprintf(pointeurfichier,"%s \n", adresse);
		fprintf(pointeurfichier," %s \n", sexe);
		fprintf(pointeurfichier,"%s \n", option);
		fprintf(pointeurfichier,"%d \n",age);
		fprintf(pointeurfichier,"%d \n",telephone);
		/*Note: j'ai mis le fclose() dans le printf(),
		  parce que fclose(NULL) est un comportement indéterminé (qui plante sous Visual),
		  contrairement à free(NULL) qui est garanti ne rien faire.*/
		fclose(pointeurfichier);
	}
	else
	{
		printf("impossible d'ouvrir le fichier.\n");
	}
}
Code C :
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
/*Main.c*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include "menu.h" //je rattache ma fonction affiche_menu() au main.c
#include "information.h" //je rattache ma fonction information() au main.c
 
int main(void)
{
	char ch = 0;
	do
	{
		affiche_menu();//Appelle de la fct affiche_menu
		/* On fait l'un ou l'autre, pas les deux.*/
		ch = getch();
		/*scanf("%c",&ch); //lecture des characteres. */
		switch (ch)
		{
		case 'A':
		case 'a':
			printf("\n\nBienvenue sur le programme permettant de saisir des informations des etudiants\nPressez une touche quelconque");
			information(); //j'appelle ma fonction.
			getch();
			break;
		case 'B':
		case 'b':
			printf("\n\nBienvenue sur le Programme permettant d afficher les informations saisies au point 1\nPressez une touche quelconque");
			getch();
			break;
		case 'C':
		case 'c':
			printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque");
			getch();
			break;
		case 'D':
		case 'd':
			printf("\n\nBienvenue sur le Programme permettant de trouver la combinaison de deux valeurs entieres");
			getch();
			break;
		case 'E':
		case 'e':
			printf("\n\nBienvenue sur le Programme permettant de former l anagramme d un nom d une personne");
			getch();
			break;
		case 'F':
		case 'f':
			printf("\n\nBienvenue sur le Programme permettant de changer la date de l ordinateur");
			getch();
			break;
		case 'G':
		case 'g':
			printf("\n\nBienvenue sur le Programme permettant d eteindre l ordinateur");
			getch();
			break;
		case 'H':
		case 'h':
			printf("\n\nBienvenue sur le Programme permettant de classer par ordre croissant et decroissant des valeurs saisis");
			getch();
			break;
		default:
			printf("\n\nVotre choix est erroné\nPressez une touche quelconque et réessayez\n");
			getch();
			break;
		}
	} while (ch != '4');
	return 0;
}
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 22h10   #6
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Slt Medinoc, c'est super vraiment super ,mil merci ça fait très longtemps que je cherche qlq pour m'aider (2 semaines environ).

Mais pour être sincère avec vous je ne suis pas trop claire dans vos modifications. Il me reste 6 autres programmes a mettre dans le menu. Je suis NOVIS (DÉBUTANT) en langage C. Se serait sympa de m’éclaircir.
N.B:
Citation:
Code :
1
2
3
4
5
6
7
8
9
10
int bRet=0;
	if(str!=NULL)
	{
		char *pNewline = strchr(str, '\n');//erreur ici (Newline)
		if(pNewLine!=NULL)                   // c'etait l aulieut de L (NewLine)
		{
			bRet = 1;
			*pNewLine = '\0';
		}
	}
dans le code: fpurge je pirge rien du tout,explique-moi les codes svp.
dans le code: fpurge.h, a quoi sert le _20130223
Et enfin dans les deux autres fichier: main.c et information.c
Code :
1
2
/*main.c*/
//quel sont les modifications que vous faite dans le code et pourqoui???
Code :
1
2
/*information.c*/
//quel sont les modifications que vous faite et pourquoi???
Encore une fois merci.
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/02/2013, 23h00   #7
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
Bonjour,
Pour la première erreur, j'ai oublié d'inclure <string.h>

Pour le reste, en gros, ça part d'un principe: La fonction gets() ne doit pas être utilisée. Jamais.
Alors on utilise fgets() à la place. Seulement:
  • Vu qu'on limite la longueur, il faut finir de lire la ligne si elle est plus grande que le tableau de caractères
  • fgets() ne retire pas le \n à la fin, contrairement à gets().
Pour ça, la fonction fpurge() finit de lire la ligne. Mais il ne faut l'appeler que si on est sûr qu'elle n'a pas été lue entièrement.
La fonction truncate_newline() cherche le \n dans le buffer, le supprime, et retourne une valeur non-nulle si elle l'a trouvé.
La fonction fclean() met tout ça ensemble:
  • Si la ligne saisie était assez courte pour tenir dans le buffer, celui-ci contiendra le \n et il n'y aura rien d'autre à faire puisqu'elle aura été lue entièrement.
  • Dans le cas contraire, le buffer ne contiendra pas de \n, donc truncate_newline() retournera zéro, et fpurge() sera appelée pour finir de lire la ligne.

La suite au prochain post.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/02/2013, 23h05   #8
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
Citation:
dans le code: fpurge.h, a quoi sert le _20130223
Vu que tu demandes spécifiquement le _20130223, je suppose que tu connais déjà les gardes d'inclusion. J'ai juste rajouté ça (la date d'aujourd'hui) pour être sur de ne pas avoir de conflit si jamais il y a un autre fichier nommé fpurge.h quelque part.

Citation:
/*information.c*/
//quel sont les modifications que vous faite et pourquoi???
La principale modif, ça a été d'utiliser fgets() + fclean() plutôt que gets(). J'ai aussi rajouté un fpurge() après chaque scanf(), parce que la fonction scanf() telle qu'elle est appelée ici ne lit pas la ligne en entier.

Citation:
/*main.c*/
//quel sont les modifications que vous faite dans le code et pourqoui???
Pour les case, ça me parait tellement évident que je ne sais pas comment l'expliquer.
Mon autre modif, c'est d'appeler information() correctement.
C'est à peu près tout ce que j'ai changé.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/02/2013, 02h16   #9
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Ok Medinoc merci, il y a bcp de choses qui me depassent. Passons aux restes de mes problemmes.
Tout mon pb c'est que-je comprends ps comment appliquer les principes,l'odres
pr que mon fichies main.c appelle tous mes programmes, car ils ont au nombres de 6.
Par EX 2 programmes et d'autres:

Code :
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
75
76
77
78
 
//ordre croissant.c
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "fpurge.h"
#include <string.h>
void ordre_crois_et_decrois()
{
    printf("\n\t\t****Bienvenue sur classement des valeurs****\n\t\t");
}
 
int main()
{
/* Déclarations */
 int tab[50]; /* tableau donné  */
 int N;     /* dimension      */
 int I;     /* indice courant */
 int MIN;   /* position du minimum */
 int MAX;   /* position du maximum */
 /* Saisie des données */
 printf("  Entre la Dimension du tableau (max.50) : ");
 scanf("%d", &N );
 for (I=0; I<N; I++)
    {
     printf("Element %d : ", I);
     scanf("%d", &tab[I]);
    }
 /* Affichage du tableau */
 printf("Tableau entre:\n");
 for (I=0; I<N; I++)
     printf("%d ", tab[I]);
 printf("\n");
 printf("\n\n!!!!!TRIAGE DES DONNES!!!!!\n\n");
 printf("--Affichage Croissant--\n\n");
system("PAUSE");
/*affichage par ordre croissant*/
char j,k;
for(j=N;j>0;j--)
{
    for(I=0;I<j-1;I++)
    {
        if(tab[I]>tab[I+1])
        {
            k=tab[I];
            tab[I]=tab[I+1];
            tab[I+1]=k;
        }
    }
}
for(I=0;I<N;I++)
{
    printf("%d\t",tab[I]);
}
printf("\n\n");
printf("--Affichage decroissant--\n\n");
system("PAUSE");
/*affichage decroissant*/
for(j=N;j>0;j--)
{
    for(I=0;I<j-1;I++)
    {
        if(tab[I]<tab[I+1])
        {
            k=tab[I];
            tab[I]=tab[I+1];
            tab[I+1]=k;
        }
    }
}
for(I=0;I<N;I++)
{
    printf("%d\t",tab[I]);
}
 printf("\n");
getch();
printf("\n\nMerci!! aurevoir....\n");
}
Code :
1
2
3
4
5
6
7
8
 
 
//ordre croissant.h
#ifndef ordre_crois_et_decrois_H_20130223
#define ordre_crois_et_decrois_H_20130223
 
 void ordre_crois_et_decrois();
#endif /* ! ordre_crois_et_decrois_H_20130223 */
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
// factorielle.c
# include <stdio.h>
# include <stdlib.h>
#include "fpurge.h"
#include<string.h>
int main(int argc, char *argv[])
{ factorielle();
    int fact = 0,n = 0;
    system ("PAUSE");
    printf("\n\nEntrer une valeur:  ");
    scanf("%d", &n);
    for (fact = 1; n > 1; n--)
    fact*=n;
    printf("Votre factorielle est : %d\n\n",fact);
 
}
Code :
1
2
3
4
5
6
7
8
 
// factorielle.h
 
#ifndef Factorielle_H_20130223
#define Factorielle_H_20130223
 void factorielle();
 
#endif /* ! Factorielle_H_20130223 */
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
// main.c
            case 'c':
            case'C':
            printf("Entrer un nombre entier:\n");
            factorielle();
            break;
            :
            :
            case 'h':
            case'H':
            printf(" Ordre croissant et decroissant un ensemble de valeur saisir par un utilisateur:\n");
            ordre_crois_et_decrois();
Les deux donnent presque les memes erreurs. J'essaie de faire les mm modif que toi ca ne marche pas.
merci.
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2013, 09h22   #10
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
Il va falloir préciser quelles erreurs tu as.

L'erreur principale que je vois par contre, c'est que tu déclares et appelles une fonction factorielle(), mais tu ne m'as pas montré sa définition.

Et aussi, tu sembles avoir plusieurs main().
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2013, 10h48   #11
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Bonjour Medi...ravis de vous ré-parlez

C:\Users\GOGO\Desktop\pratique\main.c|11|multiple definition of `main'|
obj\Debug\factorielle.o:C:\Users\GOGO\Desktop\pratique\factorielle.c|14|first defined here|
C:\Users\GOGO\Desktop\pratique\factorielle.c|20|warning: 'fact' is used uninitialized in this function [-Wuninitialized]|
||=== Build finished: 4 errors, 4 warnings (0 minutes, 5 seconds) ===|

Vous avez raison j'ai plusieurs main comment corriger cette erreur??


Code :
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
/*Main.c*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include "menu.h" //je rattache ma fonction affiche_menu() au main.c
#include "information.h" //je rattache ma fonction information() au main.c
#include "factorielle.h"
#include "croissant_decroissant.h"
 
case 'C':
		case 'c':
			printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque");
			long factorielle( long fact, long n);
			getch();
			break;
                :
                :
case 'H':
		case 'h':
			printf("\n\nBienvenue sur le Programme permettant de classer par ordre croissant et decroissant des valeurs saisis");
			ordre_crois_et_decrois();
			getch();
			break;
		default:
			printf("\n\nVotre choix est erroné\nPressez une touche quelconque et réessayez\n");
			getch();
			break;
		}
	} while (ch != '4');
	return 0;
}
Code :
1
2
3
4
5
6
7
8
 
//croissant_decroissant.h
#ifndef CROISSANT_DECROISSANT_H_INCLUDED
#define CROISSANT_DECROISSANT_H_INCLUDED
 
void ordre_crois_et_decrois(void);
 
#endif // CROISSANT_DECROISSANT_H_INCLUDED
Code :
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
75
76
77
78
79
 
//croissant_decroissant.c
 
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include "fpurge.h"
void ordre_crois_et_decrois(void)
{
    printf("\n\t\t****Bienvenue sur classement des valeurs****\n\t\t");
}
 
 
int main()
{
/* Déclarations */
 int tab[50]; /* tableau donné  */
 int N;     /* dimension      */
 int I;     /* indice courant */
 int MIN;   /* position du minimum */
 int MAX;   /* position du maximum */
 /* Saisie des données */
 printf("  Entre la Dimension du tableau (max.50) : ");
 scanf("%d", &N );
 for (I=0; I<N; I++)
    {
     printf("Element %d : ", I);
     scanf("%d", &tab[I]);
    }
 /* Affichage du tableau */
 printf("Tableau entre:\n");
 for (I=0; I<N; I++)
     printf("%d ", tab[I]);
 printf("\n");
 printf("\n\n!!!!!TRIAGE DES DONNES!!!!!\n\n");
 printf("--Affichage Croissant--\n\n");
system("PAUSE");
/*affichage par ordre croissant*/
char j,k;
for(j=N;j>0;j--)
{
    for(I=0;I<j-1;I++)
    {
        if(tab[I]>tab[I+1])
        {
            k=tab[I];
            tab[I]=tab[I+1];
            tab[I+1]=k;
        }
    }
}
for(I=0;I<N;I++)
{
    printf("%d\t",tab[I]);
}
printf("\n\n");
printf("--Affichage decroissant--\n\n");
system("PAUSE");
/*affichage decroissant*/
for(j=N;j>0;j--)
{
    for(I=0;I<j-1;I++)
    {
        if(tab[I]<tab[I+1])
        {
            k=tab[I];
            tab[I]=tab[I+1];
            tab[I+1]=k;
        }
    }
}
for(I=0;I<N;I++)
{
    printf("%d\t",tab[I]);
}
 printf("\n");
getch();
printf("\n\nMerci!! aurevoir....\n");
}
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
//factorielle.c
# include <stdio.h>
# include <stdlib.h>
#include "fpurge.h"
long factorielle( long fact, long n)
{
 for (fact = 1; n > 1; n--)
    fact*=n;
    if (fact==0 || fact==1)
    return 1;
 
}
 
int main()
{
 long  fact,n;
printf("\t\t    ***BIENVENU DANS FACTORIELLE PROGRAMME***\n\n");
    system ("PAUSE");
    printf("\n\nEntrer une valeur:  ");
    scanf("%d", &n);
   printf("Votre factorielle est : %d\n\n", factorielle(fact,n));
}
Code :
1
2
3
4
5
6
7
8
 
//factorielle.h
#ifndef FACTORIELLE_H_INCLUDED
#define FACTORIELLE_H_INCLUDED
 
long factorielle( long fact, long n);
 
#endif // FACTORIELLE_H_INCLUDED
merci.
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2013, 11h17   #12
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
Citation:
Vous avez raison j'ai plusieurs main comment corriger cette erreur??
Euh... En ne faisant pas plusieurs main()? Je ne vois pas ce qu'il y a à expliquer ici...


Ce code redéclare encore la fonction avant de l'appeler:
Code :
1
2
3
			printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nPressez une touche quelconque");
			long factorielle( long fact, long n);
			getch();
De plus, pourquoi ta fonction a-t-elle deux paramètres, dont un dont tu ignores la valeur initiale?
Code :
1
2
3
4
5
6
7
8
long factorielle( long fact, long n)
{
 for (fact = 1; n > 1; n--)
    fact*=n;
    if (fact==0 || fact==1)
    return 1;
 
}
Version corrigée:
Code C :
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
/*factorielle.c*/
#include <stdio.h>
#include "fpurge.h"
 
long factorielle(long n)
{
	long fact = 1;
	if(n==0 || n==1)
		return fact;
	for ( ; n > 1 ; n--)
		fact *= n;
	return fact;
}
 
void factorielle_ligne_commande(void)
{
	long nombre = 0;
	printf("\n\nBienvenue sur le Programme permettant de trouver la factorielle d une valeur entiere\nEntrez la valeur:");
	scanf("%ld", &nombre);
	fpurge(stdin);
	if(nombre > 12 && sizeof(long)<=4)
		puts("Nombre trop grand, sa factorielle ne tiendra pas dans un 'long'.");
	else
	{
		long f = factorielle(nombre);
		printf("Factorielle: %ld\n", f);
	}
}
Code :
1
2
3
4
5
6
7
8
/*factorielle.h*/
#ifndef FACTORIELLE_H_20130204
#define FACTORIELLE_H_20130204
 
long factorielle(long n);
void factorielle_ligne_commande(void);
 
#endif // FACTORIELLE_H_20130204
Code :
1
2
3
4
5
6
7
8
9
/*main.c*/
 
...
		case 'C':
		case 'c':
			factorielle_ligne_commande();
			getch();
			break;
...
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2013, 13h23   #13
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Enfin merci infiniment, j'ai fini par arranger presque tout mes programmes(7/9) dans le menu gras a vous.
A note que je trouve super ce tactique:
Citation:
// infosaisir.c
void factorielle_ligne_commande(void) C-A-D void Non-du-programme_ligne_commande(void)
Je ne savais ps si une fntion qui prend rien en entre et en sorti pouvais compiler et lancer les Instructions(Codes) sans pb.
Mes autres Questions
Le programme infosaisir.c est correctement inclut dans le menu, mais il fait rien lorsque je presse B. Je ne vois pas l'erreur???
le programme date.c est bien inclut, mais lorsque je tape le mm-dd-yy(mois-jour-annee) il me dit: A required privilege is not held by the client. que se parce-t'il??

Code :
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
 
// infosaisir.c
#include<stdio.h>
#include<stdlib.h>
#define max 500
#include "fpurge.h"
void infosaisir(void)
{
  // Lire le contenu du fichier
    printf("le contenu du fichier:\n");
    FILE*pointeur=NULL;
    pointeur=fopen(" les informations des etudiants.doc","r");
    char chaine[max];
    if(pointeur!=NULL)
    {
        while(fgets (chaine,max,pointeur)!=NULL);
        {
            printf("%s\n", chaine);
 
        }
 
    }
 
 fclose(pointeur);
 
}
Code :
1
2
3
4
5
6
7
8
 
// infosaisir.h
#ifndef INFOSAISIR_H_INCLUDED
#define INFOSAISIR_H_INCLUDED
 
void infosaisir(void);
 
#endif // INFOSAISIR_H_INCLUDED
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
// date.c
#include <stdio.h>
#include <stdlib.h>
#include "fpurge.h"
void date_ligne_commande(void)
{
printf("BIENVENUE DANS LE PROGRAMME PERMETTANT DE CHANGER LA DATE\n");
getch();
system("Date");
return 0;
}
Code :
1
2
3
4
5
6
7
8
 
// date.h
#ifndef DATE_H_INCLUDED
#define DATE_H_INCLUDED
 
void date_ligne_commande(void);
 
#endif // DATE_H_INCLUDED
Code :
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
 
/*Main.c*/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include "menu.h" //je rattache ma fonction affiche_menu() au main.c
#include "information.h" //je rattache ma fonction information() au main.c
#include "factorielle.h"
#include "croissant_decroissant.h"
#include "infosaisir.h"
#include "combinaison.h"
#include "Eteindre_lordinateur.h"
#include "date.h"
                    :
                    :
                case 'B':
		case 'b':
			printf("\n\nBienvenue sur le Programme permettant d afficher les informations saisies au point 1\nPressez une touche quelconque");
			infosaisir();
			getch();
			break;
                    :
                    :
                case 'F':
		case 'f':
			printf("\n\nBienvenue sur le Programme permettant de changer la date de l ordinateur");
			date_ligne_commande();
			getch();
			break;
                     :
                     :
Autre Question.
Dans le programme Factorielle, lorceque je tape: -1, -4 ect il me retourne 1 ou autres nombres babare. Comment faire pour l'arranger car il n'existe pas de factorielle pour les nombres negatifs.

Code :
1
2
3
4
5
6
if(nombre > 12 && sizeof(long)<=4)
		puts("Nombre trop grand, sa factorielle ne tiendra pas dans un 'long'.");
	else
	{
		long f = factorielle(nombre);
		printf("Factorielle: %ld\n", f);
apres ce message Nombre trop grand, sa factorielle ne tiendra pas dans un 'long' N'y a t'il pas moyen de me redemander d'entre un nombre >= 12? si OUi comment???

merci bcp.
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2013, 13h35   #14
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
Pour le coup du infosaisir(), je ne sais pas.

Mais pour le coup de la date, il faut exécuter le programme en tant qu'administrateur.
Quant au fait de redemander un nombre, oui c'est possible de faire une boucle, mais je n'ai pas le temps et l'énergie de le faire pour toi.
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/02/2013, 13h51   #15
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Citation:
Envoyé par Médinoc Voir le message
Mais pour le coup de la date, il faut exécuter le programme en tant qu'administrateur.
Quant au fait de redemander un nombre, oui c'est possible de faire une boucle, mais je n'ai pas le temps et l'énergie de le faire pour toi.
Oke merci mais:
Pouvez vous me promettre de le faire pour moi???
Quelle bibliothèque dois-je utiliser(que code) pour ouvrir la console en mode ADM???

vous avez oubliez une question.
Citation:
Dans le programme Factorielle, lorceque je tape: -1, -4 ect il me retourne 1 ou autres nombres babare. Comment faire pour l'arranger car il n'existe pas de factorielle pour les nombres negatifs.
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 25/02/2013, 07h18   #16
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
  1. Non.
  2. Pour faire ça automatiquement, c'est trop compliqué.
  3. Ben, tu rajoutes un autre if...
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2013, 01h31   #17
alexisleprogrammeur
Membre à l'essai
 
Homme Rulx Philome Alexis
Étudiant
Inscription : janvier 2013
Messages : 21
Détails du profil
Informations personnelles :
Nom : Homme Rulx Philome Alexis
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2013
Messages : 21
Points : 24
Points : 24
Citation:
Envoyé par bazvindous Voir le message
Oke merci mais:
Pouvez vous me promettre de le faire pour moi???
Quelle bibliothèque dois-je utiliser(que code) pour ouvrir la console en mode ADM???

vous avez oubliez une question.
Pour le fait que ltu n'arrives pas à sécuriser les nombres positifs.
Comme a dit Medinok un if fera l'affaire mais je rajoute aussi une boucle pour redemander ce nombre en cas d'erreur c'est a dire quand on rentre un nombre negatif

Voir ce code:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char** argv)
{
    int nbr;
    printf("\t\tEntrez un nombre superieur ou egal a zero\n");/*car la factorielle de zero
    est possible*/
    do
    {
        scanf("%d",&nbr);
        if(nbr<0)//une structure conditionnelle pour avertir l'utilisateur
        //de son erreur
        {
            printf("\t\tOn ne peut pas calculer la factorielle d'un nombre neg\n");
            printf("\t\tDonnez un nombre positif\n");
        }
    }while(nbr<0);//afin d'exiger qu'on entre de nouveau le nombre
    //en cas d'erreur donc quand c'est négatif
    return 0;
}
J'espere que ca t'aidera
alexisleprogrammeur est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/02/2013, 12h38   #18
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Thank you Alexisleprogrammeur.Bavooooooo courrage!!
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 13h35   #19
bazvindous
Invité de passage
 
Homme Sablond JOSEPH
Étudiant
Inscription : février 2013
Messages : 14
Détails du profil
Informations personnelles :
Nom : Homme Sablond JOSEPH
Localisation : Haïti

Informations professionnelles :
Activité : Étudiant
Secteur : Boutique - Magasin

Informations forums :
Inscription : février 2013
Messages : 14
Points : 0
Points : 0
Slt,
ca ne veux pas marcher,san donner la moindre erreur.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
#include<stdlib.h>
#define max 500
#include "fpurge.h"
void infosaisir(void)
{
  // Lire le contenu du fichier
    printf("\nle contenu du fichier:\n");
    FILE*pointeur=NULL;
    pointeur=fopen(" les informations des etudiants.txt","r");
    char chaine[max];
    if(pointeur!=NULL)
    {
        while(fgets (chaine,max,pointeur)!=NULL);
        {
            printf("%s\n", chaine);
 
        }
 
    }
 
 fclose(pointeur);
 
}
Que pensez-vous?
bazvindous est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/03/2013, 14h28   #20
Médinoc
Expert Confirmé Sénior
 
Avatar de Médinoc
 
Homme
Développeur informatique
Inscription : septembre 2005
Messages : 22 490
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2005
Messages : 22 490
Points : 32 264
Points : 32 264
Envoyer un message via MSN à Médinoc
Code :
1
2
3
4
5
6
7
8
9
10
11
    if(pointeur!=NULL)
    {
        while(fgets (chaine,max,pointeur)!=NULL);
        {
            printf("%s\n", chaine);
 
        }
 
    }
    else
        perror("echec de fopen");
__________________
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone.
-- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Médinoc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 02h41.


 
 
 
 
Partenaires

Hébergement Web