ProgrammatIon dynamique en C
Résolu/Fermé
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
-
Modifié le 11 déc. 2020 à 11:43
22z Messages postés 13 Date d'inscription mercredi 12 juin 2019 Statut Membre Dernière intervention 14 novembre 2022 - 12 déc. 2020 à 10:59
22z Messages postés 13 Date d'inscription mercredi 12 juin 2019 Statut Membre Dernière intervention 14 novembre 2022 - 12 déc. 2020 à 10:59
A voir également:
- ProgrammatIon dynamique en C
- Tableau croisé dynamique - Guide
- Liste déroulante dynamique excel - Guide
- Application de programmation - Guide
- Liste déroulante dynamique en cascade excel - Guide
3 réponses
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
10 déc. 2020 à 19:45
10 déc. 2020 à 19:45
Bonjour,
Une chose certaine le répertoire où se trouve main() et le répertoire à partir duquel on cherche un fichier n'ont rien à voir entre eux. D'ailleurs ton programme exécutable est lui créé dans un autre répertoire, et lui non plus ne correspond pas à l'endroit où on ira chercher les fichiers.
Le répertoire qui compte est le répertoire à partir duquel ton application est lancée. Quand le programme est lancé par l'IDE c'est souvent par défaut le répertoire du projet mais ça se configure.
Une chose certaine le répertoire où se trouve main() et le répertoire à partir duquel on cherche un fichier n'ont rien à voir entre eux. D'ailleurs ton programme exécutable est lui créé dans un autre répertoire, et lui non plus ne correspond pas à l'endroit où on ira chercher les fichiers.
Le répertoire qui compte est le répertoire à partir duquel ton application est lancée. Quand le programme est lancé par l'IDE c'est souvent par défaut le répertoire du projet mais ça se configure.
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
Ambassadeur
1 557
10 déc. 2020 à 14:59
10 déc. 2020 à 14:59
bonjour,
as-tu essayé en spécifiant le nom complet du fichier?
as-tu essayé en spécifiant le nom complet du fichier?
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
Modifié le 10 déc. 2020 à 22:17
Modifié le 10 déc. 2020 à 22:17
Merci j'avais pas pense a l'extension.
Mais le code fait il ce qui est demander ?? J'ai du mal avec les parametres de fread et fwrite...Merci d'avance
Mais le code fait il ce qui est demander ?? J'ai du mal avec les parametres de fread et fwrite...Merci d'avance
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
>
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
10 déc. 2020 à 21:47
10 déc. 2020 à 21:47
et quel est le résultat?
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
>
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
10 déc. 2020 à 22:51
10 déc. 2020 à 22:51
Au fait j'ai fait des corrections. Maintenant je retrouve les deux fichiers mais la copie ne se fait. Pour moi la ligne 27 servirait pour la copie. Du genre on lit dans le fichier source caractere par caractere et on ecrit la meme chose dans le fichier de destination.
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
>
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
11 déc. 2020 à 15:33
11 déc. 2020 à 15:33
"la copie ne se fait": que se passe-t-il avec le fichier destination?
es-tu certain que le contenu du fichier source est correctement affiché? je crains que non!
es-tu certain que le contenu du fichier source est correctement affiché? je crains que non!
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
>
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
11 déc. 2020 à 21:29
11 déc. 2020 à 21:29
C'est le code avec les corrections, le contenu du fichier source s'affiche ensuite celui du fichier de destination mais je m'attends a une copie avant l'affichage du contenu du fichier de destination.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char n;
FILE *source;
char nm_source[30];
FILE *dest;
char nm_dest[30],m;
printf("Hello world!\n");
printf("Entrer le nom du fichier source\n");
scanf("%s",nm_source);
source=fopen(nm_source,"r");
if(source==NULL)
{
printf("ERREURE : Le fichier n'existe pas ou ne peux pas etre ouvert\n");
}else
{
printf("\nEntrer le nom du fichier de destination\n");
scanf("%s",nm_dest);
dest=fopen(nm_dest,"a");
printf("Le contenu du fichier source:\n");
while(fread(&n,1,1,source)!= 0)
{
printf("%c",n);
fwrite(&n,1,1,dest);
}
}
fclose(source);
printf("\nLe contenu du fichier destination apres la copie\n");
dest=fopen(nm_dest,"r");
while(fread(&m,1,1,dest) != 0)
{
printf("%c",m);
}
fclose(dest);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char n;
FILE *source;
char nm_source[30];
FILE *dest;
char nm_dest[30],m;
printf("Hello world!\n");
printf("Entrer le nom du fichier source\n");
scanf("%s",nm_source);
source=fopen(nm_source,"r");
if(source==NULL)
{
printf("ERREURE : Le fichier n'existe pas ou ne peux pas etre ouvert\n");
}else
{
printf("\nEntrer le nom du fichier de destination\n");
scanf("%s",nm_dest);
dest=fopen(nm_dest,"a");
printf("Le contenu du fichier source:\n");
while(fread(&n,1,1,source)!= 0)
{
printf("%c",n);
fwrite(&n,1,1,dest);
}
}
fclose(source);
printf("\nLe contenu du fichier destination apres la copie\n");
dest=fopen(nm_dest,"r");
while(fread(&m,1,1,dest) != 0)
{
printf("%c",m);
}
fclose(dest);
return 0;
}
Dalfab
Messages postés
706
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
2 novembre 2023
101
11 déc. 2020 à 19:37
11 déc. 2020 à 19:37
Tu as du mal avec les paramètres de fread et fwrite...
- Le plus compliqué c'est le premier, tu as pourtant trouvé. C'est l'adresse où mettre le résultat.
- Les 2nd et 3ème sont la taille des objets à récupérer et le nombre d'objets.
- Le dernier est le fichier, tu as aussi trouvé.
Toi tu veux lire 1 char, ça donne:
Maintenant on peut tout aussi bien lire 1000 caractères d'un coup, c'est pareil mais ça va "un peu" plus vite (la fonction retourne combien elle a réussi à en lire.)
Après tu veux lire le fichier écrit, attention il faut impérativement se remettre au début pour le lire. Un moyen simple c'est de fermer le fichier, puis de le rouvrir en mode lecture seulement.
- Le plus compliqué c'est le premier, tu as pourtant trouvé. C'est l'adresse où mettre le résultat.
- Les 2nd et 3ème sont la taille des objets à récupérer et le nombre d'objets.
- Le dernier est le fichier, tu as aussi trouvé.
Toi tu veux lire 1 char, ça donne:
while ( fread( &n, sizeof(char), 1, source ) != 0 ) { fwrite( &n, sizeof(char), 1, dest ); }
Maintenant on peut tout aussi bien lire 1000 caractères d'un coup, c'est pareil mais ça va "un peu" plus vite (la fonction retourne combien elle a réussi à en lire.)
do { char buffer[1000]; size_t nb_read = fread( buffer, sizeof(char), 1000, source ); fwrite( buffer, sizeof(char), nb_read, dest ); } while ( nb_read == 1000 );// si on en a lu moins de 1000 c'est qu'on a fini
Après tu veux lire le fichier écrit, attention il faut impérativement se remettre au début pour le lire. Un moyen simple c'est de fermer le fichier, puis de le rouvrir en mode lecture seulement.
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
11 déc. 2020 à 21:44
11 déc. 2020 à 21:44
ok je vois merci beaucoup
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
1 557
>
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
11 déc. 2020 à 22:33
11 déc. 2020 à 22:33
peux-tu alors marquer la discussion comme résolue?
22z
Messages postés
13
Date d'inscription
mercredi 12 juin 2019
Statut
Membre
Dernière intervention
14 novembre 2022
>
yg_be
Messages postés
23412
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
28 décembre 2024
12 déc. 2020 à 10:59
12 déc. 2020 à 10:59
oui oui bien sur. Merci