begin process at 2012 05 29 14:26:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

problème conversion string to char*


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

problème conversion string to char*

lundi 18 juin 2007 à 11:46:47 | problème conversion string to char*

totoscill

Bonjour,
je veut récupérer des infos dans un fichier. Pour cela il me faut convertir mes lignes récupérer "string" en "char*".
Voici mon code pour cette conversion:

string line;

size_t size = line.size() + 1;

char

*InfoLine= newchar[size];

File.open(FileName,ios::in);

//ouverture du fichier

if(File)

{

cout<<

"!!!file open!!!\n\n\n"<<endl; //instructions

while ( getline( File, line ) )

{

strncpy( InfoLine, line.c_str(), size );

cout<<InfoLine<<endl;

}

Malheureusement, lorsque j'éxécute mon soft, le cout me renvoies n'importe quoi!
Quelqu'un pourrai t il m'aidé?

Je vous remercie

lundi 18 juin 2007 à 12:04:01 | Re : problème conversion string to char*

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

pourquoi ne pas lire ton fichier d'un bloc ? exemple ICI

sinon si tu veux lire absolument ligne par ligne tu peux faire :
[...]
string file = "fichier.txt";
string data = "";
ifstream mfile(file.c_str());//ouverture du fichier
if (!mfile) data = "erreur";
string lines;
while (getline(mfile, lines))//lecture des lignes du fichier
data += (lines + '\n');
mfile.close();
    
cout << data << endl;
[...]




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
lundi 18 juin 2007 à 13:21:01 | Re : problème conversion string to char*

totoscill

merci.
Je ne lis pas mon fichier d'un bloc parce que chaque ligne de mon fichier comporte des infos que je dois récupérer. Et le problème est la. Je n'arrive pas a récuperrer ces infos. Pour cela, il faut que je convertisse ma string en char. Sur chaque ligne, j'ai deux infos a récupérer qui ne sont pas l'une après l'autres.
lundi 18 juin 2007 à 13:44:05 | Re : problème conversion string to char*

Twinuts

Membre Club Administrateur CodeS-SourceS

Salut,

ce qui m'intrigue dans ton code c'est que tu alloue un tableau de 1 octect... :
string line; //chaîne vide
size_t size = line.size()+1;//du vide + 1 = 1 octect ^^
char* InfoLine = new char[size];//tableau de 1
.... donc la suite je ne suis pas surpris que tu n'ai pas ce que tu veux....

pour la petite adaptation tu peux faire (c'est un chouilla crado mais tu devrais y trouver ton compte):

#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char **argv) {
    ifstream mfile("fichier.txt");//ouverture du fichier
    if (mfile) {
        string lines;
        long num = 0;
        while (getline(mfile, lines)) {//lecture des lignes du fichier
            const char* infoLine= lines.c_str(); //recup la ligne
            //affichage
            cout << "infoLine (num : " << (++num) << ") = " << infoLine << endl;
        }
        mfile.close();
    } else
        cerr << "Open error !" << endl;
       
    return 0;
}


------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
lundi 18 juin 2007 à 23:45:34 | Re : problème conversion string to char*

BruNews

Administrateur CodeS-SourceS
"Je ne lis pas mon fichier d'un bloc parce que chaque ligne ..."
Suffit de 2 pointeurs à ballader dans le buffer pour détailler les lignes.

La lecture 'par ligne' n'existe pas, c'est les libs de surcouche fstream et iostream qui contiennent la masse de code nécessaire à simuler cela (ce code lent et inutile finira dans ton exe). Tout ceci cumulé à l'emploi de 'string' rendra ton code aussi "performant" que du VB.

ciao...
BruNews, MVP VC++


Cette discussion est classée dans : string, file, char, size, line


Répondre à ce message

Sujets en rapport avec ce message

Convertion d'une string en char [ par redpooka ] Voici avec ce programme ca n'affiche juste le premier charactère comment faire pour qu'il affiche toute la chaine de caracètre ?Merci#include <iostre Problème copie de fichier.... [ par Clonk ] Bonjour,Je voudrais copier un fichier texte dans mon appli, j'ai fais la fonction suivante://Copie d'un fichier (création du backup)int copier(char * Recréer la fonction strstr [ par qubs ] Salut, J'aimerais recoder la fonction strstr mais je n'arrive pas a aboutir et a comprendre le fonctionnement, j'aimerais bien un coup de main svp. = Sélection d'octet [ par dayvid75014 ] Bonjour à tous, Je récupère les octets de mon fichier vidéo dans un buffer "Buffer[]" et je voudrais sélectionner les octets 0x47 et je n'y a conjugaison en c++ [ par abdelali62 ] Bonsoir tt le monde c'est mon premier programme en c++ j'ai trouve une difficulter a implante le code de la fonction main mais je vais pas besser les fwrite() : Invalid or incomplete multibyte or wide character [ par Ige ] Au secours:Je remplie la chaine de caractère mesg à l'aide de la fonction    recvSecureUDP(.., mesg, .., .., .., )   ;L'affichage avec le printf("Voic question [ par nouha23 ] voila un class de mon projet fin d'étude je veu comprendre ces  codes svp /**************************************************************************/ La class string [ par jderf ] Je suis débutant et je teste la class string. Voici un code tous simple, mais y'a un probleme de conversion à la compil que je ne comprend pas. Les er Etendre std::string(char *) pour utiliser nos references de char[] a l'interne [ par ebeaumier ] Bonjour,Je dois appeler une API externe qui ne prend que des "const string &" et nous utilisons a l'interne des char[].Est-il possible d'étendre la cl


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 1,810 sec (3)

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