A voir également:
- Code C
- Code ascii - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code blocks - Télécharger - Langages
6 réponses
Bonsoir,
Merci d'abord pour votre réponse.
Les déclarations sont faites pour lire les noms des bases et des tables. Je que le problème ne se constitue pas là !!? je crois que le problème est au niveau des \ (antislash).
Merci d'abord pour votre réponse.
Les déclarations sont faites pour lire les noms des bases et des tables. Je que le problème ne se constitue pas là !!? je crois que le problème est au niveau des \ (antislash).
Nom_fich = (char *)malloc(sizeof(char));
c'est un comme si tu faisais (statiquement)
char Nom_fich[1];
Il n'y a de place que pour un caractère. Donc lorsque tu fais
printf("\nEntrer le nom de la table num. %d\t", indice+1);
scanf("%s", Nom_fich);
ça pose un problème...
La même chose pour de nombreux endroits dans le code.
c'est un comme si tu faisais (statiquement)
char Nom_fich[1];
Il n'y a de place que pour un caractère. Donc lorsque tu fais
printf("\nEntrer le nom de la table num. %d\t", indice+1);
scanf("%s", Nom_fich);
ça pose un problème...
La même chose pour de nombreux endroits dans le code.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
C'est bon ça marche mais il reste un tout petit problème c'est au niveau de la boucle for précisément lors de la création des fichiers (tables). Le nom du fichier suivant est concaténé avec ceux précèdent. Il faut à chaque fois initialiser le pointeur Ma_base. Avez-vous une idée !?
Bonsoir,
Voila le code en intégrité comme ça ça marche très bien !!!?
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<direct.h>
#include<string.h>
void Creation_Dossier_Data()
{
mkdir("c:\\data\\");
}
char * Creation_Base_Donnees(char * Nom_base)
{
char *Ma_base, * char_tmp;
Ma_base = (char *)malloc(sizeof(char)*20);
char_tmp = (char *)malloc(sizeof(char)*20);
char_tmp = strcpy(char_tmp, "c:\\data\\");
Ma_base = strcat(char_tmp, Nom_base);
mkdir(Ma_base);
return ((char *)Ma_base);
}
void Creation_des_Tables(int Nbr_tables, char * Nom_base)
{
char Ma_base[20], Ma_base_tmp[20];
FILE * pt_fich;
char * Nom_fich;
char * Ma_table;
int indice;
Ma_table = (char *)malloc(sizeof(char)*20);
Nom_fich = (char *)malloc(sizeof(char)*20);
pt_fich = (FILE *)malloc(sizeof(FILE)*5);
strcpy(Ma_base, Nom_base);
strcat(Ma_base, "\\");
strcpy(Ma_base_tmp, Ma_base);
for(indice = 0; indice < Nbr_tables; indice++)
{
printf("\nEntrer le nom de la table num. %d\t", indice+1);
scanf("%s", Nom_fich);
Ma_table = strcat(Ma_base_tmp, Nom_fich);
pt_fich = fopen(Ma_table, "w");
strcpy(Ma_base_tmp, Ma_base);
fclose(pt_fich);
}
}
main()
{
char * Ma_base;
int nbr;
Ma_base = (char *)malloc(sizeof(char)*20);
Creation_Dossier_Data();
printf("\nEntrer le nom de votre base de donnees:\t");
scanf("%s", Ma_base);
Ma_base = Creation_Base_Donnees(Ma_base);
printf("\nEntrer le nombre des tables de votre base de donnees:\t");
scanf("%d", &nbr);
Creation_des_Tables(nbr, Ma_base);
getch();
return 0;
}
Voila le code en intégrité comme ça ça marche très bien !!!?
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<direct.h>
#include<string.h>
void Creation_Dossier_Data()
{
mkdir("c:\\data\\");
}
char * Creation_Base_Donnees(char * Nom_base)
{
char *Ma_base, * char_tmp;
Ma_base = (char *)malloc(sizeof(char)*20);
char_tmp = (char *)malloc(sizeof(char)*20);
char_tmp = strcpy(char_tmp, "c:\\data\\");
Ma_base = strcat(char_tmp, Nom_base);
mkdir(Ma_base);
return ((char *)Ma_base);
}
void Creation_des_Tables(int Nbr_tables, char * Nom_base)
{
char Ma_base[20], Ma_base_tmp[20];
FILE * pt_fich;
char * Nom_fich;
char * Ma_table;
int indice;
Ma_table = (char *)malloc(sizeof(char)*20);
Nom_fich = (char *)malloc(sizeof(char)*20);
pt_fich = (FILE *)malloc(sizeof(FILE)*5);
strcpy(Ma_base, Nom_base);
strcat(Ma_base, "\\");
strcpy(Ma_base_tmp, Ma_base);
for(indice = 0; indice < Nbr_tables; indice++)
{
printf("\nEntrer le nom de la table num. %d\t", indice+1);
scanf("%s", Nom_fich);
Ma_table = strcat(Ma_base_tmp, Nom_fich);
pt_fich = fopen(Ma_table, "w");
strcpy(Ma_base_tmp, Ma_base);
fclose(pt_fich);
}
}
main()
{
char * Ma_base;
int nbr;
Ma_base = (char *)malloc(sizeof(char)*20);
Creation_Dossier_Data();
printf("\nEntrer le nom de votre base de donnees:\t");
scanf("%s", Ma_base);
Ma_base = Creation_Base_Donnees(Ma_base);
printf("\nEntrer le nombre des tables de votre base de donnees:\t");
scanf("%d", &nbr);
Creation_des_Tables(nbr, Ma_base);
getch();
return 0;
}