Creation de fichier en cpp

cs_bissmillah Messages postés 8 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 22 décembre 2008 - 4 nov. 2008 à 23:16
cs_mathius Messages postés 4 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 17 novembre 2008 - 17 nov. 2008 à 12:34
J'aimerai avoir de l'aide grace aux menbres inscrits,pour créer un fichier texte en cpp,moi j'ai essayer de le créer en c ,c'est un fichier texte dans lquel j'aimerai stocker des mots bien definie voila (mais je ne sais pas pourqoi le fichier texte ne contient pas ces mots  lorsque je l'ouvre )


aider moi

10 réponses

cs_bissmillah Messages postés 8 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 22 décembre 2008
4 nov. 2008 à 23:22
voila ce que j'ai fait :


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

int main (void)
{char * motso [13]={"RABROUEES","ERRE","volt","NEANT","NOE","INSERT","FES","ORGUE","ATTIRES","ADRESSONS","RODE","SITE","SCENES"};
FILE* entree ;
int i;
char NOM_FICH[]="mots.txt";
entree=fopen(NOM_FICH,"w");
if (!entree)
{printf("\aErreur:imposible d'ouvrir\n");
 exit (-1);
}
while (i!=13)

fwrite(&motso,sizeof(char*),1,entree);

 

fclose(entree);
return 0;
getch();}
merci d'avance
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
5 nov. 2008 à 09:09
Salut,

Et le "i" tu penses l'initialiser quand ?
Faudrait peut-être l'incrémenter aussi tu crois pas ?

En gros tu dois remplacer ta boucle par :
for(i=0;i<13;i++)
{
      fwrite(&motso, strlen(motso[i]), 1, entree);

}

Autre chose, tout ce qui est après return 0; ne sera pas appellé, donc ton getch tu peux le virer d'autant plus qu'il sert a rien.

Shell
0
cs_bissmillah Messages postés 8 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 22 décembre 2008
5 nov. 2008 à 13:12
slt DeAtHCrAsH:
merci d'avoir repondu à ma question .
vous avez raison (pour tout ce vous avez dit )et c'est ce j'ai déja fait ,mais je n'obtient pas ce je veux après l'exécution .
j'aimerai avoir un fichier texte qui contient les mots (chaque mot par ligne )mais ce que j'obtient dans le fichier ce n'est que des truques bizard comme:
0@
0@ �F; 0@  0@  0@
 0@ 0@
0 0@ 0@
 0@
0@ 0@
0@ �F; 0@  0@  0@
0
du n'importe quoi
merci
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
5 nov. 2008 à 13:59
Salut,

¤ Il faut que tu ouvres ton fichier en mode texte.

FILE * pFile;
pFile = fopen("C:\\toto.txt", "w+t");
if(!pFile){
   return -1; // Erreur lors de l'ouverture du fichier.
}

¤ Ensuite pour écrire un mot par ligne tu as juste a ajouter "\r\n" après chaque mot :
char *pTab[2] = { "MOT1\r\n", MOT2\r\n" };

Shell
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_bissmillah Messages postés 8 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 22 décembre 2008
6 nov. 2008 à 00:20
slt
je vous remercie encore une fois
j'ai trouvé l'origine du pb c'est que je doit utiliser fscanf au lieu de fwrite
parce que c'est un fichier texte ,et voila le pb est résolu ,
après l'xecution j'obtient le fichier texte avec un mot à chaque ligne
voila la syntaxe selon le code précedent :fscanf (entree,"%s\n",mots[i]);
nb:\n c'est pour avoir un mot par ligne.
merci beaucoup
0
cs_bissmillah Messages postés 8 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 22 décembre 2008
6 nov. 2008 à 00:55
maintenant le pb c'est que je ne sais pas la syntaxe de ce code en c++,car on nous a appris la création de fichier en c  non pas c++,


qu'est ce qui va changer?
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
6 nov. 2008 à 09:27
fscanf(...) n'écrit pas dans un flux mais y lit des données.
Pour ce qui est de l'écriture dans un fichier en C++, si tu es sous windows il faut utiliser l'API :
CreateFile(...)
WriteFile(...)
ReadFile(...)
CloseHandle(...).

Sinon pour rester sur du standard quelque soit l'OS, regarde du coté de fstream...

Shell
0
cs_mathius Messages postés 4 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 17 novembre 2008
10 nov. 2008 à 22:06
Salutations:

Je suis un debutant très,tres peu peu expert, mais, s'il est de votre interêt voici une fonction que j'utilisse
dans le programme backup que j'ai deposé ahujourd'hui. (je travaille avec c++ builder)

void __fastcall TBackup::Message(String Fi,String M)
{
//Cette fonction crée un fichier de nom Fi, si n'existe pas
// et ajoute une ligne de texte M


FILE *MonFichier;
MonFichier = fopen ((Fi).c_str(),"a");
if (MonFichier!=NULL)
fputs ((M+"\n").c_str(),MonFichier);
fclose (MonFichier);


Cette fonction je l'utilisse aussi que dans le programme décrit, pour gérer un fichier *.txt de liaison entre une application ventes et autre programme comptable.
Vous pouvez envoyer aussi de lignes que vous voulez.

Bon courage,,
0
cs_bissmillah Messages postés 8 Date d'inscription lundi 3 novembre 2008 Statut Membre Dernière intervention 22 décembre 2008
13 nov. 2008 à 22:16
MERCI pour la réponse mathius ,il parrait que vous étes vraiment expert ,mais je comprend pas tous ce qui est écrit dans votre code car jusqu'a maintenent on n'a pas emtamé le cours de création de fichier en c++ mais j'en aurais besoin pour un projet


j'aurais aimé que vous ou quelqu'un qui a des cours détaillés sur la création des fichiers ,me les depose
et merci
0
cs_mathius Messages postés 4 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 17 novembre 2008
17 nov. 2008 à 12:34
//c'est écrit pour langage C++------------------------------------------

#include <stdio.h> //prototype
#include <conio.h> // "
#include <dir.h> // "
#include // "

void message(char *NomFichier, char *LigneText)// declaration fonction qui
// reçoive les deux parameters
// type char
{
FILE *FichierACreer; //on crée un "stream" c'est un instrument
//qui permet travailler avec des fichiers
//mais par le moment il ne sait
//pas sur quel fichier
FichierACreer = fopen(NomFichier,"a");//dans cette ligne nous essaions
// d'ouvrir le fichier entré comme
//parameter C:\\Preuve\\Fichier1.txt
//fopen est compris dans le prototype
// iostream. Si on ne declare fopen
// serait inconnu
//fopen a 2 arguments; le nom du fichier
//avec la route, et comme ouvrir -pour
// faire qui?? dans notre cas créer, si
//n'existe pas, et écrire ajoutant la
// nouvelle ligne
//c'est par cela que nous mettons "a".
//Ouvre,crée et ajoute au final
//il y a des autres options chercher
//C++ fopen dans Internet
if(FichierACreer==NULL) //fopen return quelque chose, NULL,
//si n'est pas possible ouvrir le fichier
// ou les coordonées du fichier.
// FichierAcreer etait au moment de la
//création une chose générique... "un
// appartement" aprés la lien c'est
//l'appartement nº xx de la rue zz
//pas le literal du nom
printf ("%s \n", "Pas possible créer le fichier");
else //si la lien a réussie
{
fputs (LigneText,FichierACreer); //écrire la ligne de texte
fputs ("\n",FichierACreer); //écrire un return de ligne
fclose (FichierACreer); //ferme le fichier
}
} // fin de la fonction
//--------------------------------------------------
int main()
{
//Ecrire 3 lignes dans le fichier (s'il exists ajoute - si n'existe crée et //ajoute)mais... le repertoire doive exister

mkdir("C:\\Preuve"); // créer le repertoire (prototype dir)

message("C:\\Preuve\\Fichier1.txt","C'est ma première ligne"); //appel à la
// fonction
message("C:\\Preuve\\Fichier1.txt","C'est la deuxième ligne"); // "
message("C:\\Preuve\\Fichier1.txt","Et tout marche bien"); // "

return 0;
}
//*********************************************************************************
//je utilisse borland c++ Builder......c'est autre chose beaucoup plus facile
//on a toute la puissance de c++ plus en bas niveau et aussi des autres macro //instructions
//Mon conseil: utilisez des livres et internet pour chercher. Vous avez de //tout. Vous seratrès utile que quelq'un vous aide comme chercher.
//Mon cas, je n'ai pas des étudies d'informatique. Je suis retraité 74 //ans(economiste).
//Un bon connaisance de toutes les tâches comptables et de gestion entreprise //(comme directeur financier .... organisation -quelques ans liaison avec les //informaticiens pour developper des applications..- Je sais très bien //l'utilité de l'informatique dans la gestion des sociétés
//Après retraite j'ai acheté des livres, C++ Borland 5, aprés C++ Builder 3 et //maintenant C++ Builder 5. j'ai étudié tout seul et maintenant j'ai programé //une application client serveur ventes, stocks liaison comptable, basse donnés //MSSQL -sans interêt économique- que fonctionne assez bien depuis 9 mois. Je //cherche la plus simple fonctionnalité pour l'utilisateur et la
//securité. Je ne sais pas si vous est utile
0
Rejoignez-nous