> Tous les forums > Forum Autres langages
 prog C faire choisir le nom du fichier à créerSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
gugus54
  Posté le 18/12/2011 @ 19:02 
Aller en bas de la page 
Petit astucien

bonjour, je me demandais si il était possible de demander à l'uttilisateur du programme le nom du fichier à enregistrer:

int main ()

{

char nomFichier [10] = {0};

int i = 0;

for(i=0;i<9;i++)

{

scanf("%c", nomFichier[i]);

}

FILE* fichier = NULL;

fichier = fopen("XXX.txt", "W+");//je voudrais remplacer XXX par "nomFichier"

if (fichier == NULL)

{

printf("erreur");

}

{

.....//suite du programme

}

return 0;

}

voila donc serait-t-il possible de remplacer XXX par la chaine stockée dans nomFichier?

Publicité
breizhbugs
 Posté le 18/12/2011 à 22:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonjour,

Faut bannir gets() trop susceptible de dépassement de buffer et lui préferer fgets()...

gugus54
 Posté le 19/12/2011 à 11:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci

gugus54
 Posté le 27/12/2011 à 18:23 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

en fait, il y a un probleme avec ce code:

int main()
{
char nouveau[10];
FILE*fichier = NULL;

printf("Entrez le nom du fichier: \n ");
puts(nouveau);

strcat("nouveau",".txt");


fichier = fopen(nouveau, "w");

return 0;
}

voila. le programme se déroule jusqu'à me demander de rentrer le nom du fichier et a ce moment, il y a une feunetre qui s'affiche indiquant que le programme à cessé de fonctionné, je n'ai meme pas pu rentrer le nom du fichier {#}



Modifié par gugus54 le 27/12/2011 18:26
gugus54
 Posté le 27/12/2011 à 18:43 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

eh... ou je dois mettre gets() car j'ai essayé mais il y avait le meme probleme...

merci

gugus54
 Posté le 27/12/2011 à 19:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

voila mon code:

int main()
{
char nomFichier[10];
FILE*fichier = NULL;

printf("Entrez le nom du fichier:");gets(nomFichier);

strcat("nomFichier",".txt");

puts(nomFichier);


fichier = fopen(nomFichier, "w");

return 0;
}

voila je ne vois pas ce qui ne va pas j'ai bien fais ce que vous m'avez dit ...

gugus54
 Posté le 27/12/2011 à 19:15 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

eh la le programme se termine directe il me laisse meme pas rentrer le nom et il finit

gugus54
 Posté le 28/12/2011 à 15:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci Anonyme ca marche

gugus54
 Posté le 28/12/2011 à 15:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

mais ces lignes doivent se trouver dans la fonction main ou dans le fichier main?

Publicité
gugus54
 Posté le 28/12/2011 à 16:06 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

oui mais j'ai mis les lignes:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main ()

{

char nomFichier [10];
FILE* fichier = NULL;

printf("Entrez le nom du fichier : ");gets(nomFichier);

strcat(nomFichier,".txt");
puts(nomFichier);

fichier = fopen(nomFichier, "W+")
;

return 0;

}



dans un nouveau programme et cela a fonctionné.

mais je l'ai ensuite mis dans une autre fonction que int main ()

qui est:

int nomFichier () {...}

et la, le programme ne me pose plus la question et il finit.

pourtant, dans la fonction main, j'ai bien mis la ligne:

nomFichier();




gugus54
 Posté le 28/12/2011 à 16:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

voila mon code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int CreerFichier();
int OuvrirFichier();


int main()
{
printf("que voulez vous faire? \n1.créer un fichier\n2.ouvrir un fichier\n");
int choix = 0;
scanf("%d", &choix);
if(choix == 1)
{
CreerFichier();
}
else if (choix == 2)
{
OuvrirFichier();
}
else
{
printf("erreur");
}

return 0;
}

int CreerFichier()
{
char NomFichier[10];

FILE* fichier = NULL;

printf("rentrez le nom du fichier:\n");gets(NomFichier);

strcat(NomFichier, ".txt");

puts(NomFichier);

fichier = fopen(NomFichier, "w");
}

int OuvrirFichier()
{
/* ...........
..........
*/
}

gugus54
 Posté le 28/12/2011 à 16:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci ca marche

mais si ca ne te dérange pas (car tu m'as bien aidé) pourrait tu m'expliquer brievement le role de %*c

car je n'ai pas bien compris

merci

gugus54
 Posté le 28/12/2011 à 17:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

ok merci donc si j'ai bien compris, lorsque j'appui sur [entrée] l'ordinateur enregistre la réponse + la variable dans la memoire vive et lorsque je redemande une entrée, il se sert de la réponse et repond tout seul?

merci

gugus54
 Posté le 28/12/2011 à 17:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

ok merci

bonne fetes

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
20,45 €Carte mémoire microSDXC UHS-I SanDisk A1 Ultra 128 Go à 20,45 €
Valable jusqu'au 01 Mars

Amazon propose actuellement la carte mémoire microSDXC UHS-I SanDisk A1 Ultra 128 Go à 20,45 € livrée gratuitement. Cette carte mémoire offre des vitesses jusqu'à 100 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD. Elle est certifiée GoPro et Switch.


> Voir l'offre
9,99 €Bloc multiprise parasurtenseur BRENNENSTUHL 8 prises à 9,99 €
Valable jusqu'au 27 Février

Amazon fait une promotion sur le bloc multiprise parasurtenseur BRENNENSTUHL avec 8 prises à orientation interversée qui passe à 9,99 € au lieu de 20 €. Le câble fait 1,4 m.


> Voir l'offre
-30%Jusqu'à -30% sur une sélection de produits Ski et Snow sur Amazon
Valable jusqu'au 26 Février

Amazon offre actuellement jusqu'à 30% de remise immédiate sur une sélection de vêtements, accessoires, matériel et équipement de ski et de snow.


> Voir l'offre

Sujets relatifs
Créer un fichier init.lua
créer fichier .gdb avec delphi
Créer un fichier .com
creer un fichier .pif
Création de fichier .msi : Comment faire ?
Erreur d'Ouverture de Fichier Illustrator = opérateur Fautif: "Bg"
créer pop-up, bandeau ou ? dynamique
Arduino quel éditeur choisir ?
Création d'un fichier End Of File
Extraire une image d'un fichier SWF
Plus de sujets relatifs à prog C faire choisir le nom du fichier à créer
 > Tous les forums > Forum Autres langages