snpier wolf
Messages postés216Date d'inscriptionsamedi 11 août 2007StatutMembreDernière intervention30 mai 2011
-
12 févr. 2008 à 01:28
snpier wolf
Messages postés216Date d'inscriptionsamedi 11 août 2007StatutMembreDernière intervention30 mai 2011
-
12 févr. 2008 à 19:24
bonjours à tous,
voila j'ai cherché partout et pas moyen de trouver une solution a mon problèmme.
je vous explique, j'ais fait un programme qui ouvre un fichier, qui peux affichier ce qu'il a ouvert ,
et aussi le modifier. jusque la sa marchait au momant ou j'ai voulu modifier le fichier en tapen par exemple "salut toi";
la il m'a dit le fichier a été modifié, toi n'est pas une command. donc dans le fichier il y a que salut, après avoir cherché sur le net j'apprends que "cin" s'arrette à chaque espace, qu'il faut utiliser "getline". sauf que, quand j'utilise "getline", je ne peux pas tapé le texte a metre dans le fichier. Il fait :
>>change //c'est la commande pour modifier le texte
le fichier "Nom du fichier" à été modifier
int FileExists(char* cfname)
{
return (GetFileAttributes(cfname) != 0xFFFFFFFF);
}
void help(){cout<<"liste de commande :\n\n open\t\t\touvre un fichier selectionn\202\n"
<<"\n more\t\t\taffiche la selection de la command ouvrir\n\n help\t\t\t"
<<"affiche l'aide\n\n quit\t\t\tfait quite le programme\n\n"
<<" ccs\t\t\teffac\202 l'\202cran\n\n change\t\t\tmodifie le fichier "
<<"selectionn\202 par la command open\n\n";}
command O;
main()
{
char cSaisie[50];
char cCom[10];
int i=0;
ccs:
cout<<"\t\t\t\tAFDOS\t0.0.1\n";
main:
int iSwitch=0;
cout<<">>";
cin>>cCom;
if (!strcmp(cCom,"quit")){return 0;}else
if (!strcmp(cCom,"open")){iSwitch=1;}else
if (!strcmp(cCom,"more")){iSwitch=2;}else
if (!strcmp(cCom,"ccs")){iSwitch=5;}else
if (!strcmp(cCom,"change")){iSwitch=6;}else
if (!strcmp(cCom,"help")) {iSwitch=3;}else{iSwitch=4;}
switch(iSwitch)
{
case 1:
cout<<"\n\ntapez le nom/chemin d'axai du fichier a ouvrir\n>";
cin>>cSaisie;
if(FileExists(cSaisie)==true){i=1;O.open(cSaisie);}
else{cout<<"\nchemin d'axai erron\202\n";}
break;
case 2:
if(i!=0){ O.affiche();}
else{cout<<"vous n'avez pas ouvert de fichier\n";}
break;
case 3:
help();
break;
case 4:
cout<<cCom<<" n'est pas une command\ntapez help pour la liste de command\n\n";
goto main;
break;
case 5:
system("CLS");
goto ccs;
break;
case 6:
if(i!=0){O.modif(cSaisie);}
else{cout<<"vous n'avez pas ouvert de fichier\n";}
break;
}//fin de switch
cout<<endl;
goto main;}
<hr />
<hr />#ifndef _ressource_h
#define _ressource_h
using namespace std;
class command
{
public :
void open( char*cName)
{
fStr.open(cName, fstream::in | fstream::binary); //Ouvrir le fichier en lecteur
fStr.seekg(0, ios::end); //Trouver la fin du fichier
iNumChrs = fStr.tellg(); //Lire le nombre d'octets
fStr.seekg(0, ios::beg); //Revenir au début
cBuf = new char [iNumChrs]; //Redimensionner l'espace tampon avant
fStr.read(cBuf, iNumChrs); //d'accueilir les données
fStr.close(); //Sans oublier de fermer le filestream
cout<<"fichier "<<cName<<" ouvert\n";
}
Je ne vois pas ou MAX_PATH a été declaré , c'est sur que si la chaine a une taille nulle ca va pas recuperer grand chose du cin , mais bon peutetre ai je des problemes de vue.
Si l'informatique été de l'alcool il y aurait des genies partout
snpier wolf
Messages postés216Date d'inscriptionsamedi 11 août 2007StatutMembreDernière intervention30 mai 2011 12 févr. 2008 à 18:38
merci pour le delete j'avais pas vue, la gestion d'errore pour quoi pas mm si il peut pas utiliser la commande ten quil a pas ouvert un fichier et MAX_PATH j'ai peut être que je me trompe mais il me semble que j'ais pas besion de le déclarer et même si je met cCf[100]; c'est la même il prend que le premier mot.
Vous n’avez pas trouvé la réponse que vous recherchez ?