Visualizzazione dei risultati da 1 a 8 su 8

Discussione: cin.getline c++

  1. #1

    cin.getline c++

    vorrei conoscere il funzionamento tecnico di questo comando..

    Nello specifico non capisco perchè mi da un problema,
    esempio:

    int main()
    {
    int x;
    cout<<"inserisci x";
    cin>>x;
    return main();
    }

    tralasciando il fatto che queste istruzioni compongono un ciclo infinito (mi serve solo come esempio) in queste istruzioni "x" verrà logicamente ogni volta riassegnato.

    int main()
    {
    char x[20];
    cout << "inserisci x";
    cin.getline (x,20);
    return main();
    }

    utilizzando le stesse istruzioni ma con il char, "x[20]" verrà assegnato una sola volta e ogni volta che ricomincia il ciclo non mi farà più immettere dei nuovi valori..

    Spero di essere stato abbastanza chiaro.. mi affido a voi

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte il fatto che le chiamate ricorsive del main non sono consentite (oltre che inutili ...), non ho affatto capito quale sia il problema ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    Il problema sarebbe forse che col secondo codice non ti consente la reimmissione della stringa ad ogni chiamata ricorsiva di main? Col gcc riesco a farlo tranquillamente...
    every day above ground is a good one

  4. #4
    l'esempio del return main era solo per far capire il problema. Dopo la prima volta che un utente assegna la variabile x[20], in caso si riproponga la domanda, il programma mi salta la riassegnazione della variabile

    provo con un altro esempio,

    con x che sia intero fa
    inserisci x: 2
    x=2
    inserisci x: 3
    x=3
    ecc..

    con x char mi fa

    inserisci x: ciao mamma
    x=ciao mamma
    inserisci x: ciao papa
    x=ciao mamma
    ecc..

    non mi permette di riassegnarlo

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scritto cosi'

    codice:
    int main()
    {
      char x[20];
      cout<<"inserisci x ";
      cin>>x;
      cout<<x<<endl;
      return main();
    }
    funziona regolarmente anche con il VC++
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    E anche scrivendo il tutto in un semplice ciclo iterativo

    codice:
    #include <iostream>
    using namespace std;
    
    int main(void) {
    
       char x[20];
    
       for ( short i = 0; i <= 5; i++ ) {
    
          cout << "inserisci x : ";
          cin.getline (x,20);
    
          cout << "x = " << x << endl;
       }
    
       return 0;
    }
    every day above ground is a good one

  7. #7
    ok è andato.. grazie mille

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da benestasio2
    ok è andato.. grazie mille
    ? Che vuol dire ?

    Andava anche prima ... che hai fatto ? (solo per curiosita' ...)
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.