Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [c++] problema con getlinte e stringhe

    Allora ho un problema sulla popolazione di un array di classi..

    questa è la mia classe:
    codice:
    Class corsi
    {
        private:
           string nome;
           string argomento;
        public:
            corsi();
    }
    detto questo uso questa funzione per leggere da flie e popolare la classe:
    codice:
    void leggi(ifstream& in)
    {
       in.getline(nome,50,'$');
       in.getiline(argomento,50,'$');
    }
    Il problema è che la getline accetta come primo argomento un array di char, ma nel mio caso è espressamente richiesto di uasere stringhe... come posso fare per fare accettare al getline delle stringhe?
    Sono costretto ad usare una variabile temp di char e poi scriverla sulla stringa?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Beh... spero che la tua classe non sia tutta lì, altrimenti è una bella classe inutile!


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    No no è che mi ha inviato il messaggio senza volre..

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Beh... puoi utilizzare il costruttore di string per creare un oggetto a partire dall'array di char; se non erro, infatti, uno dei costruttori di string è il seguente:
    codice:
    string(char *str);
    In questo modo usi una variabile d'appoggio per poi costruire l'oggetto di cui hai bisogno.

    Potrebbe esistere anche qualcosa di diverso, tipo qualche metodo dell'oggetto cin, che però non conosco.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5

    Re: [c++] problema con getlinte e stringhe

    corsi.h
    codice:
    #ifndef _CORSI_H_
    #define _CORSI_H_
    
    #include <fstream>
    
    class corsi
    {
      public:
        corsi();
        void leggi(std::ifstream& in);
    
      private:
        std::string nome;
        std::string argomento;
    };
    
    #endif // _CORSI_H_
    corsi.cpp
    codice:
    #include "corsi.h"
    
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    corsi::corsi()
    {
    }
    
    void corsi::leggi(ifstream& in)
    {
       getline(in, nome, '$');
       getline(in, argomento, '$');
    }
    Nota: se usi Visual C++ 6, devi correggere un bug di getline.
    http://support.microsoft.com/default...b;en-us;240015

  6. #6
    perfetto molto bene!!!
    Grazie!

    Cmq ora ho il problema inverso... che funzione uso per fare una cosa analoga ma in scrittura???

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.