Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it L'avatar di baicin
    Registrato dal
    Feb 2002
    Messaggi
    29

    c++ Come far prendere al cin gli spazi

    Qesto codice mi serviva per provare la sintassi di stuct...e su questo non c'è problema...il problema sta nel fatto che se sulle stringhe "tipo" e "titolo" metto due parole non mi funziona.
    Per esempio se inserisco come titolo "ciao" tutto funziona, ma se inserisco "ciao ciao" prende il secondo ciao come "tipo".....ho provato usando cin.get ma non sono riuscito a risolvere il problema.

    codice:

    #include<iostream.h>

    struct cd {
    char titolo [20];
    char tipo [10];
    int prezzo;
    int quantita;
    };

    void main ()

    {
    cd cd1;


    cout<<"Inserisci il titolo del cd:\n";

    cin>>cd1.titolo;

    cout<<"Inserisci il tipo del cd:\n";

    cin>>cd1.tipo;

    cout<<"Inserisci il prezzo del cd in euro:\n";

    cin>>cd1.prezzo;

    cout<<"Inserisci la quantità di cd:\n";

    cin>>cd1.quantita;

    cout<<cd1.tipo<<cd1.quantita;

    }
    BACCI

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    1,798
    Prova a racchiudere le parole tra i doppi apici.Se non vado errato anche in C++ lo spazio è considerato separatore di parole predefinito.


  3. #3
    Utente di HTML.it L'avatar di baicin
    Registrato dal
    Feb 2002
    Messaggi
    29

    ???

    Il fatto è che le parole non sono gia fissate nel main..ma bisogna digitarle da tastiera ogni volta, quindo non penso abbia senso racchiuderle tra virgolette.
    BACCI

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    2
    fammi capire, il tuo prob e che la cin ti termina allo spazio giusto? se e cosi usa una gets e acquisiscila come stringa, visto che la gets termina solo quando premi invio (/n) che viene sostituito nella array con una /0, cioe il tuo ciao ciao verra cosi |c|i|a|o| |c|i|a|o|/0|

  5. #5
    Utente di HTML.it L'avatar di baicin
    Registrato dal
    Feb 2002
    Messaggi
    29

    non ho capito

    non ho capito cosa vuoi dire...puoi correggere il codice e postarlo?Grazie!
    BACCI

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    2
    al posto di cin metti gets, prova

  7. #7
    usare gets() e' un metodo pessimo. E' molto insicura e oltrettutto si può fare di meglio. Usa un loop con cin.get() cosi:


    for (char ch = 0, i = 0; ch != '\n', ++i)
    cd.titolo[i] = ch;

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

  8. #8
    sorry. il loop e':

    for (char ch = 0, i = 0; ch != '\n', cin.get(ch), ++i)
    cd.titolo[i] = ch;

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

  9. #9
    Utente di HTML.it L'avatar di baicin
    Registrato dal
    Feb 2002
    Messaggi
    29

    sto diventando scemo!

    in questo loop ci sono due errori segnalati come mancanza di punto e virgola!!! dove cavolo è!

    for (char ch = 0 ,i = 0; ch != '\n'; cin.get(ch), i++)
    cd.titolo[i] = ch;
    BACCI

  10. #10
    Utente di HTML.it L'avatar di baicin
    Registrato dal
    Feb 2002
    Messaggi
    29

    Trovato!!111

    scusate tutto ok adesso
    grazie mille!
    BACCI

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.