Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    n355un0
    Guest

    [c++] funzione alternativa a .getline()

    avrei necessità di utilizzare una funzione alternativa a .getline(char*, int) con cin che legga gli spazi vuoti ma sia compatibile con l'allocazione dinamica della memoria. in breve, questo:

    char* stringa = new char;
    cin >> stringa;


    con il riconoscimento dello spazio (getline non si puo' usare poichè va specificata la quantità di memoria da allocare, ma faceva comodo per la capacità di riconoscere stringhe contenenti spazi).

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    9
    Forse dico una fesseria, non ho qui a disposizione il mio manuale di C++ per controllare...
    ma tu dichiari un puntatore a carattere...
    ... se utilizzi una variabile di tipo string è già un puntatore a carattere e gestisce tutto C++:

    string stringa;
    cin >> stringa;

    fammi sapere qualcosa che son curiosa!
    Ciao! Elisabetta

  3. #3
    Utente bannato
    Registrato dal
    Apr 2002
    Messaggi
    546
    potresti fare così:

    #include <iostream.h>

    void main()
    {
    char line[100];
    cout << " Type a line terminated by " << endl;
    cin.getline( line, 100);
    cout << line;
    }
    --------------------------------

    Se vuoi fare col tuo modo: ..............attenzione!!

    char *c[3];
    char *a = NULL; // devi inizializzarlo, se non lo fai e'potenzialmnete
    // pericoloso perche' il puntatore puo' contenere un
    // indirizzo di memoria casuale con la possibilita' non
    // remota di andare a sovrascrivere aree di codice o
    // dati del programma con risultati imprevedibili

    for(int i=0;i<3;i++)
    {

    cout<<"digita una col.: ";

    // devi riservare memoria per memorizzare la stringa
    // memorizza l' indirizzo di memoria restituito dal sistema operativo
    // in a
    a = new char[3+1]; // spazio per 3 caratteri + terminatore di stringa
    c[i] = a; // inizializza anche c[i], ora c[i] e a puntano alla
    //stessa zona di memoria

    cin>>a;
    cout<<c[i]<<" "<<i<<" "<<a<<endl;
    }

    for(int w=0;w<3;w++)
    {
    cout<<c[w]<<" "<<a<<" "<<w<<endl;
    }
    // libera la memoria allocata con new
    delete c[0];
    delete c[1];
    delete c[2];
    }

    //*************************************
    //*************************************




    +--------+
    | by Ten |
    +--------+






    link
    homepage
    http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
    software
    http://%77%77%77%2e%74%77%6f%72%6b%2...programmi.html
    forum
    http://%77%77%77%2e%74%77%6f%72%6b%2...um/default.asp

  4. #4
    n355un0
    Guest
    betti: in linea di massima non vorrei utilizzare le mfc... senno' ci sarebbe la CString che funziona benissimo... ma è un problema che vorrei risolvere in una normalissima console app

    per ora grazie mille a tutt'e 2, proverò con la soluzione di steno.

  5. #5
    n355un0
    Guest
    doh! danneggiamento memoria! mi sembra strano, il codice fila...

    ci smanetto un po' stanotte, per ora grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.