begin process at 2010 02 09 21:48:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

cin


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

cin

mardi 12 février 2008 à 01:28:59 | cin

snpier wolf

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

>>

comme si il sautait getline pour quoi?
mardi 12 février 2008 à 01:42:06 | Re : cin

snpier wolf

le code on c'est jamais


#include <cstdio>
#include <cstdlib>
#include <fstream>
#include "windows.h"
#include <iostream>

#include "ressource.h"
using namespace std;

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;}    




#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";
   }
            
void  affiche(){cout<<cBuf<<endl;}

int modif(char*cName)
{
  
   char cCf[MAX_PATH];
   cout<<">";
   cin>>cCf;
   ofstream Fichier(cName);
   Fichier <<cCf;
   Fichier.close();
   cout<<"\nfichier "<<cName<<" a \202t\202 modifi\202\n";
  
   cBuf=cCf;
}
private:
     int iNumChrs;
     fstream fStr;
     char *cBuf;
     };
#endif


mardi 12 février 2008 à 17:23:03 | Re : cin

CCJ

Membre Club
Salut.
cBuf = new char [iNumChrs];
un new mais je ne vois pas de delete , risque de fuite mémoire il me semble.

  ofstream Fichier;
Fichier.open (cName);
if (Fichier.is_open())
{
cin >> cCf;
Fichier << cCf;
Fichier.close();
cout << "\nfichier modifié\n";
}
else
{
cout << "Erreur d'acces au fichier";
}
Avec gestion d'erreur c'est mieu.

char cCf[MAX_PATH];

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
mardi 12 février 2008 à 18:38:50 | Re : cin

snpier wolf

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.

mardi 12 février 2008 à 18:46:17 | Re : cin

luhtor

Réponse acceptée !
"cin" prend jsute le premier mot (s'arrete au premier espace notamment).

cin.getline(cCf, 99) pour copier au max 99 caractères dans un buffer de 100 cases. Il s'arrete pas meme si ya un espace.


mardi 12 février 2008 à 19:20:13 | Re : cin

snpier wolf

voila mais le problèmme est que quand je met cin.getline, il le saut je ne peux pas fair la saisie de cCf
mardi 12 février 2008 à 19:24:36 | Re : cin

snpier wolf

c bon j'ais trouvé sais cin>>cCom (dans main) qui était le problèmme mnt sa marche je l'ais remplacé par cin.getline comme tu ma dis merci


Cette discussion est classée dans : fichier, modifier, cherché, cin, getline


Répondre à ce message

Sujets en rapport avec ce message

modifier un fichier en hexadecimal [ par cybermarcel ] bonjours tout le monde !!! la forme ??alors voila je voudrai ouvrire un fichier et changer une valeur mais je voudrai l'ouvrire en hexadecimal et chan modifier un enregistrement [ par ludelu ] Bonjour, je souhaiterai savoir comment on peut modiffier un enregistrement dans un fichier et dans la même ocasion supprimer un fichier.Le fichier est prob avec cin.getline(); [ par yafuka ] salut!j''essai de rentrer des chaines de caracteres de la misere a boucler le cin.getline.ma fonction ajouteevoid book::Ajouter(){ cout cout Un fichier .rul c'est quoi ???? [ par sounlight ] Voici mon problème : je dois modifier un logiciel programmé en c++. J'ai ses codes sources.Lors de l'installation du logiciel, le setup ne détecte pas a propos de cin.getline [ par Xneo ] Je voudrais savoir quelle ligne de code mettre après les cin.getline pr vidé le buffer ou un truc kom sa parske si je met plusieurs cin.getline a la s modifier un fichier texte sur ftp [ par kidpigeyre ] Je cherche à modifier un fichier texte présent sur mon ftp à partir de mon application.Cmt faire?Mci.kidpigeyre Question à la con sur un getline() [ par Killvador ] Salut tt le monde,G un petit problème:dans ce petit prog le début marche jusqu'a la getline() qu'on dirait que le prog l'a complétement zapé.(y passe probleme de chargement de fichier ,urgent [ par oceane67 ] voilà j'ai un probleme de chargement de fichier, si j'utilise la fonction fscanf , il saute des données le code:// if( ( familles=fopen("familles.dat problème avec cin.getline(...,...,...) [ par bouba ] J'utilise cin.getline() pour stocker une chaîne de caractère entrée au clavier. Le problème est qu'il faut appuyer deux fois sur entrée pour valider l cin.getline(str, 256) [ par ronandmcdonald ] Salut je voulais savoir comment cela se fess que je peux pas utiliser cin.getline dans une fonction que voila :bool RS232::Write_RS232(){DWORD dwWritt


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,452 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales