Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 25 su 25
  1. #21
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da Scara95
    Fai un ciclo infinito, leggi il carattere, se ti basta una x o una i, fai il confronto con un if o uno switch e utilizzi
    codice:
    continue; //torna all'inizio del ciclo
    break; //interrompe il ciclo
    Non so come leggere il carattere senza cin...

    Vogliio dire...

    codice:
    do {
    //istruzioni da eseguire
    } while(controllo);
    Se al posto di controllo metto l'ascolto... del carattere digitato con cin... mi si blocca il programma credo e debbo adottare un altro tipo di ascolto parametri input o sbaglio?

    tnx

  2. #22
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Ma scusa, se la metti alla fine del ciclo che problemi ti da?
    E' logico che tu gli faccia fare la sua strada, poi che tu lo blocchi alla fine aspettando le istruzioni per proseguire...
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #23
    Utente di HTML.it L'avatar di freetom
    Registrato dal
    Nov 2001
    Messaggi
    3,725
    Originariamente inviato da Scara95
    Ma scusa, se la metti alla fine del ciclo che problemi ti da?
    E' logico che tu gli faccia fare la sua strada, poi che tu lo blocchi alla fine aspettando le istruzioni per proseguire...
    Ah ok

    Quindi se faccio

    codice:
    do {
    //istruzioni da eseguire
    } while(cin >> azionedaeseguire);
    dovrebbe funzionare e non bloccarsi nel mezzo del prg in quanto è alla fine del ciclo...

    Ok grazie!

  4. #24
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,589
    Originariamente inviato da MItaly
    In ogni caso, il problema, non si pone, dato che lo standard C++ proibisce di richiamare il main all'interno del programma (C++11, §3.6.2 ¶3).
    Sbagliato lo standard sconsiglia di richiamare il main dallo 03 in poi:
    The function main shall not be used within a program
    E' fortemente sconsigliato, ma non vietato.
    Prova a compilare con gcc/g++ con la flag dello standard attivo richiamando il main, non genera ne errori ne warning.
    Io ho utilizzato il codice seguente
    codice:
    #include <iostream>
    using namespace std;
    int x = 0;
    int main() {
    	x+=1;
    	if(x == 5) {
    		cout <<"vedi?" << endl;
    		return 0;
    	}
    	return main();
    }
    comando di compilazione
    codice:
    g++ -ansi nome_sorgente.cpp
    esecuzione
    codice:
    ./a.out
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  5. #25
    Originariamente inviato da Scara95
    Sbagliato lo standard sconsiglia di richiamare il main dallo 03 in poi:


    E' fortemente sconsigliato, ma non vietato.
    "shall" e "shall not" nello standard è sempre inteso come obbligo¹, e in generale lo standard non consiglia/sconsiglia un bel niente (salvo quando parla di feature deprecate), è la definizione di come funziona il linguaggio, non una guida di stile.
    Tutto il resto è un dettaglio specifico dell'implementazione di g++, che ovviamente non è normativa. Inoltre, il compilatore più standard-conformant che ci sia (Comeau), proponendogli
    codice:
    #include <cstdlib>
    
    int main()
    {
        if(std::rand()!=1)
            return main();
        else
            return 0;
    }
    dice esplicitamente:
    codice:
    Comeau C/C++ 4.3.10.1 (Oct  6 2008 11:28:09) for ONLINE_EVALUATION_BETA2
    Copyright 1988-2008 Comeau Computing.  All rights reserved.
    MODE:strict errors C++ C++0x_extensions
    
    "ComeauTest.c", line 6: error: function "main" may not be called or have its
              address taken
              return main();
                     ^
    
    1 error detected in the compilation of "ComeauTest.c".
    ---

    1. Come nelle RFC:
    MUST This word, or the terms "REQUIRED" or "SHALL", mean that the definition is an absolute requirement of the specification.
    2. MUST NOT This phrase, or the phrase "SHALL NOT", mean that the definition is an absolute prohibition of the specification.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.