Language c

Résolu/Fermé
zouheirpo - 23 mars 2009 à 20:00
 zouheirpo - 24 mars 2009 à 01:29
Bonjour,

plaise quelqu un peu m aider dans ce programe parceque il veux pa se compiler et je sais pa ou j ai les fautes .svp :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int titi(const char zouheir[200],char salwa[200])
{
FILE* R;
FILE* L;
int i;
printf ("entrer la chaine de caractére dans le fichier zouheir");
scanf("%199s",zouheir);
L=fopen("zou.txt","w");
if(L==NULL) printf("erreur");
else fputs(zouheir,L);
printf ("entrer la chaine de caractére dans le fichier salwa");
scanf(%199s",salwa);
R=fopen("sal.txt","w");
if(R==NULL) printf("erreur");
else fputs(salwa,R);
puts(zouheir);
puts(salwa);
for(i=0;i<strlen(zouheir)+1;i++) {
if( zouheir[i]=='c')
(salwa[i]='C');
else
salwa[i]=zouheir[i];
}
fclose(R);
fclose(L);

return 0;
}
plaise aidez moi

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
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?
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 0;
}
}
il est just mé quand je l execute le fenetre (noir) de l exucution se disparaitre je voi rien je c pa pourquoi?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 22:45
Oui le const marche bien en C, pas de soucis ;-)).
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
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).
0
bsr mon ami fiddy
le programe que tu ma donné creer les fichiers mé il ne copier pa
stp si tu peu essayer le program que j ai fai (il est basé sur ce que tu ma donné) dans ta machine parceque il veu pa exécuté dans la machine plaise mon frere
0
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
vous avez oublié le return de main() ou bien vous pouvéz mettre void main() sans return à la fin
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 22:50
Non, pas de void main() en C ;-).
main retourne un int.
0
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 ;
}
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 835
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;
}
0
ca marcher avec toi mon frere?
parceque moi nn
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
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;
0
c marche mé il fais pa la création des fichier, il fais la copy que dans l exécution il ne créé pa les fichier sou.txt et zou.txt
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > zouheirpo
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 :

L=fopen("C:\\zou.txt","w");
R=fopen("C:\\sal.txt","w");

Tes programmes seront alors créés sur C:.
0
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
les fichiers sont creé mé sans faire la copy
0
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
c koi la foncion des :#define MAX 20
et;sizeof
getchar()
stp
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > zouheirpo
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.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
23 mars 2009 à 23:41
Qu'entends-tu par sans faire la copie ?
Tes fichiers sont vides ?
0
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
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > zouheirpo
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 ?
0
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
#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
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
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;
0
ou je vais la mettre?
0
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
merci pour le plus ya fiddy
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
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 ?
0
hh mon frere fiddy je té di deja que je suis qu un debutant
et walah quelque fois je comprend pas se que vous voulez me dir
et je sais pas koi faire avec cette fputs
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > zouheirpo
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.
0
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
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
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.
0
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
0
plaise frere aide moi pour la dernier foi
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
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 ;-)).
0
merci boucoup frere
tu ma vraiment aidé merci pour tous
merci merci merci
0