Language c
Résolu/Fermé17 réponses
peji72
Messages postés
73
Date d'inscription
lundi 29 décembre 2008
Statut
Membre
Dernière intervention
1 mars 2010
129
23 mars 2009 à 22:01
23 mars 2009 à 22:01
Bonsoir.
Déja tu as oublié un " ouvrant ici : scanf(%199s",salwa);
Ensuite je pense qu'il te manque le main.
Es tu sur que "const" marche en C?
Déja tu as oublié un " ouvrant ici : scanf(%199s",salwa);
Ensuite je pense qu'il te manque le main.
Es tu sur que "const" marche en C?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 mars 2009 à 22:22
23 mars 2009 à 22:22
Salut,
Sur ce sujet : http://www.commentcamarche.net/forum/affich 11612833 aide en c, je t'avais déjà donné le programme.
Qu'est-ce qui ne marche pas sur ta machine ? (Car sur la mienne ça marche).
Sur ce sujet : http://www.commentcamarche.net/forum/affich 11612833 aide en c, je t'avais déjà donné le programme.
Qu'est-ce qui ne marche pas sur ta machine ? (Car sur la mienne ça marche).
Aladin230
Messages postés
24
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
29 juillet 2009
1
23 mars 2009 à 22:36
23 mars 2009 à 22:36
vous avez oublié le return de main() ou bien vous pouvéz mettre void main() sans return à la fin
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 mars 2009 à 22:50
23 mars 2009 à 22:50
Non, pas de void main() en C ;-).
main retourne un int.
main retourne un int.
bon voila le program final mé pas d exécution:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int titi( char zouheir[200],char salwa[200])
{
FILE* R;
FILE* L;
int i;
printf("entrer la chaine de caractére dans le fichier de zouheir");
scanf("%199s",zouheir);
L=fopen("zou.txt","w");
if(L==NULL) printf("erreur");
else fputs(zouheir,L);
scanf ("%199s",salwa);
R=fopen("sal.txt","w");
if(R==NULL) printf("erreur");
else fputs(salwa,R);
puts(zouheir);
puts(salwa);
rewind(L);
rewind(R);
for(i=0;i<=zouheir[199];i++){
if( zouheir[i]=='c')
(salwa[i]='C');
else
salwa[i]=zouheir[i];
}
fclose(R);
fclose(L);
return;
}
return 0 ;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int titi( char zouheir[200],char salwa[200])
{
FILE* R;
FILE* L;
int i;
printf("entrer la chaine de caractére dans le fichier de zouheir");
scanf("%199s",zouheir);
L=fopen("zou.txt","w");
if(L==NULL) printf("erreur");
else fputs(zouheir,L);
scanf ("%199s",salwa);
R=fopen("sal.txt","w");
if(R==NULL) printf("erreur");
else fputs(salwa,R);
puts(zouheir);
puts(salwa);
rewind(L);
rewind(R);
for(i=0;i<=zouheir[199];i++){
if( zouheir[i]=='c')
(salwa[i]='C');
else
salwa[i]=zouheir[i];
}
fclose(R);
fclose(L);
return;
}
return 0 ;
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 mars 2009 à 22:55
23 mars 2009 à 22:55
Ce programme-là créé bien les fichiers en copiant les chaînes avant modification.
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 20 int titi(const char *zouheir, char *salwa) { int i; for(i=0;i<strlen(zouheir)+1;i++) if( zouheir[i]== 'c') salwa[i]='C'; else salwa[i]=zouheir[i]; return 0; } int main(void) { char zouheir[MAX]; char salwa[MAX]; FILE* R; FILE* L; printf("entrez la chaine de caractére dans le fichier de nom zouheir\n"); fgets(zouheir,sizeof zouheir,stdin); L=fopen("zou.txt","w"); if(L==NULL) printf("erreur"); else fputs(zouheir,L); printf("entrez la chaine de caractére dans le fichier de nom salwa\n"); fgets(salwa,sizeof salwa,stdin); R=fopen("sal.txt","w"); if(R==NULL) printf("erreur"); else fputs(salwa,R); fclose(R),R=NULL; fclose(L),L=NULL; puts(zouheir); puts(salwa); titi(zouheir,salwa); puts(zouheir); puts(salwa); return 0; }
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 mars 2009 à 23:10
23 mars 2009 à 23:10
Ca marcher avec toi
Ca marche très bien ;-)).
Je vois peut-être ce qui te fait dire ce qui ne marche pas sur ta machine.
Rajoute getchar(); avant le return 0;
Ca marche très bien ;-)).
Je vois peut-être ce qui te fait dire ce qui ne marche pas sur ta machine.
Rajoute getchar(); avant le return 0;
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
zouheirpo
23 mars 2009 à 23:25
23 mars 2009 à 23:25
Les fichiers créés sont zou.txt et sal.txt.
Regardes-tu dans le bon répertoire ? (répertoire contenant le programme exécutable).
Sinon, si tu sais pas où c'est, à la place des fopen dans le programme, mets :
Tes programmes seront alors créés sur C:.
Regardes-tu dans le bon répertoire ? (répertoire contenant le programme exécutable).
Sinon, si tu sais pas où c'est, à la place des fopen dans le programme, mets :
L=fopen("C:\\zou.txt","w"); R=fopen("C:\\sal.txt","w");
Tes programmes seront alors créés sur C:.
zouheirpo
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
23 mars 2009 à 23:34
23 mars 2009 à 23:34
les fichiers sont creé mé sans faire la copy
zouheirpo
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
23 mars 2009 à 23:38
23 mars 2009 à 23:38
c koi la foncion des :#define MAX 20
et;sizeof
getchar()
stp
et;sizeof
getchar()
stp
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
zouheirpo
23 mars 2009 à 23:44
23 mars 2009 à 23:44
#define MAX 20
ça permet de remplacer toutes les occurrences MAX par 20. Ainsi juste en changeant 20 par 50, tout le programme fonctionnera correctement.
sizeof renvoie la taille d'un tableau.
Et le getchar() à la fin permet d'attendre une touche de la part du buffer clavier. Ici, puisque le buffer est vide, cela attendra que l'utilisateur appuie sur une touche. Cela évite donc que le programme se ferme trop vite.
ça permet de remplacer toutes les occurrences MAX par 20. Ainsi juste en changeant 20 par 50, tout le programme fonctionnera correctement.
sizeof renvoie la taille d'un tableau.
Et le getchar() à la fin permet d'attendre une touche de la part du buffer clavier. Ici, puisque le buffer est vide, cela attendra que l'utilisateur appuie sur une touche. Cela évite donc que le programme se ferme trop vite.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
23 mars 2009 à 23:41
23 mars 2009 à 23:41
Qu'entends-tu par sans faire la copie ?
Tes fichiers sont vides ?
Tes fichiers sont vides ?
non frere ne sont pa vide mé ils sont rempli par ce qu on na entres
par exemple :
dans l execution de program il me domande d entré la chaine de caractere dans le fichier zou.txt
cette chaine que j ai l entré c la meme que je le trouve dans le fichier créé dans c:\\.......
le meme chose dans le fichier de nom sal.txt
par exemple :
dans l execution de program il me domande d entré la chaine de caractere dans le fichier zou.txt
cette chaine que j ai l entré c la meme que je le trouve dans le fichier créé dans c:\\.......
le meme chose dans le fichier de nom sal.txt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
zouheirpo
23 mars 2009 à 23:57
23 mars 2009 à 23:57
Bah oui c'est normal, puisque dans le programme il y a fputs(zouheir,L) qui permet d'écrire dans ton fichier zou.txt la chaîne zouheir.
Qu'est-ce que tu voudrais que ça fasse à la place ?
Qu'est-ce que tu voudrais que ça fasse à la place ?
Aladin230
Messages postés
24
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
29 juillet 2009
1
23 mars 2009 à 23:50
23 mars 2009 à 23:50
#define MAX 20 : définir une constante MAX avec la valeur 20
sizeof retourne la taille du fichier ou d'une variable ou d'un type donné
getchar() : On l'utilise pour mantenir la fenetre de l'execution ouverte jusqua un appui sur une touche au calv
sizeof retourne la taille du fichier ou d'une variable ou d'un type donné
getchar() : On l'utilise pour mantenir la fenetre de l'execution ouverte jusqua un appui sur une touche au calv
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 mars 2009 à 00:00
24 mars 2009 à 00:00
#define MAX 20 : définir une constante MAX avec la valeur 20
Pas vraiment. #define permet de demander au compilateur de remplacer MAX par 20 avant de passer à la compilation. La preuve est qu'on ne définit pas le type de la constante.
Pour définir une constante, c'est : const int max=20;
Pas vraiment. #define permet de demander au compilateur de remplacer MAX par 20 avant de passer à la compilation. La preuve est qu'on ne définit pas le type de la constante.
Pour définir une constante, c'est : const int max=20;
Aladin230
Messages postés
24
Date d'inscription
lundi 23 mars 2009
Statut
Membre
Dernière intervention
29 juillet 2009
1
24 mars 2009 à 00:03
24 mars 2009 à 00:03
merci pour le plus ya fiddy
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 mars 2009 à 00:09
24 mars 2009 à 00:09
Ou je vais la mettre?
De quoi tu parles ?
Qu'est-ce que tu veux qu'il soit écrit dans tes fichiers ?
De quoi tu parles ?
Qu'est-ce que tu veux qu'il soit écrit dans tes fichiers ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
>
zouheirpo
24 mars 2009 à 00:20
24 mars 2009 à 00:20
Beh, là je ne te parle pas de programmation. Je te pose une simple question en français.
Que veux-tu que le programme écrive dans tes fichiers ?
Je ne vois pas comment être plus clair. :s.
Et pour le fputs, son utilisation est simple : fputs(variable,L)
cela écrit la chaîne variable dans le fichier L.
Que veux-tu que le programme écrive dans tes fichiers ?
Je ne vois pas comment être plus clair. :s.
Et pour le fputs, son utilisation est simple : fputs(variable,L)
cela écrit la chaîne variable dans le fichier L.
nn je veux ecrir dans les deux fichier et le program doit copier le contenu du fichier zou dans le fichier sal
en remplacant chaque caractére c par C je veux dir que l'ecritre que j ai écris dans le fichier sal sera ecrasé si il trouve c ou non
en remplacant chaque caractére c par C je veux dir que l'ecritre que j ai écris dans le fichier sal sera ecrasé si il trouve c ou non
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 mars 2009 à 00:34
24 mars 2009 à 00:34
Je ne vais pas faire tout ton travail non plus !!!
Je te l'ai déjà assez avancé comme ça je trouve.
Il y a la fonction titi qui inverse le contenu des tableaux en convertissant les c en C.
Il ne te reste plus qu'à écrire ça dans un fichier avec fputs. Tu as un exemple d'utilisation dans le programme.
Bonne chance.
Je te l'ai déjà assez avancé comme ça je trouve.
Il y a la fonction titi qui inverse le contenu des tableaux en convertissant les c en C.
Il ne te reste plus qu'à écrire ça dans un fichier avec fputs. Tu as un exemple d'utilisation dans le programme.
Bonne chance.
plaise frere di moi juste dans quelle parti dans le program je vai l utilisé plaise frere demain a 8h j ai l exposé
et je suis pa encor terminé plaise
et je suis pa encor terminé plaise
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
24 mars 2009 à 01:11
24 mars 2009 à 01:11
T'as juste à enlever les lignes commençant par else.
Mettre les fclose() juste avant le getchar().
Enlever les deux puts utilisés avant titi()
Et enfin mettre fputs(zouheir,L) à la place de puts(zouheir) et de même pour l'autre puts.
A partir de là, j'estime que tu peux terminer ton travail ;-)).
Mettre les fclose() juste avant le getchar().
Enlever les deux puts utilisés avant titi()
Et enfin mettre fputs(zouheir,L) à la place de puts(zouheir) et de même pour l'autre puts.
A partir de là, j'estime que tu peux terminer ton travail ;-)).
23 mars 2009 à 22:17
#include <stdlib.h>
#include <string.h>
int main()
{
int titi( char zouheir[200],char salwa[200])
{
FILE* R;
FILE* L;
int i;
printf("entrer la chaine de caractére dans le fichier de zouheir");
scanf("%199s",zouheir);
L=fopen("zou.txt","w");
if(L==NULL) printf("erreur");
else fputs(zouheir,L);
scanf ("%199s",salwa);
R=fopen("sal.txt","w");
if(R==NULL) printf("erreur");
else fputs(salwa,R);
puts(zouheir);
puts(salwa);
rewind(L);
rewind(R);
for(i=0;i<=zouheir[199];i++){
if( zouheir[i]=='c')
(salwa[i]='C');
else
salwa[i]=zouheir[i];
}
fclose(R);
fclose(L);
return 0;
}
}
il est just mé quand je l execute le fenetre (noir) de l exucution se disparaitre je voi rien je c pa pourquoi?
23 mars 2009 à 22:45