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

    [C++] Chiarimenti basilari su sintassi per stampare su output

    Salve provengo da Java e dato che all'università hanno modificato il linguaggio cambiando il programma in C++, sto cercando di trasferirmi su di esso cercando di capire le analogie..e per il momento mi sono bloccato alla sintassi per inviare un output, anche se sto studiando ancora il motivo per cui si usa la simbologia "<<".
    Il mio piccolo programma è
    codice:
    #include <iostream>
    
    
    using namespace std;
    
    
    int main()
    {
        int somma,n1,n2;
        cout<<"Inserisci il primo numero"<<;   //linea 8
        cin>>n1;
        cout<<"Inserisci il secondo numero"<<;    /linea 10
        cin>>n2;
        somma=n1+n2;
        cout<<"La somma e' "<< somma;
    
    
    
    
    }
    L'errore che mi dà è
    codice:
    ||=== Build: Debug in Somma (compiler: GNU GCC Compiler) ===|C:\Users\Pierfrancesco\Documents\Progetti Code Block\Somma\main.cpp||In function 'int main()':|
    C:\Users\Pierfrancesco\Documents\Progetti Code Block\Somma\main.cpp|8|error: expected primary-expression before ';' token|
    C:\Users\Pierfrancesco\Documents\Progetti Code Block\Somma\main.cpp|10|error: expected primary-expression before ';' token|
    ||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
    Però rieseguendo il codice aggiungendo la sintassi "endl" dopo
    "cout<<"Inserisci il primo numero"<<"
    il codice viene compilato ed eseguito senza problemi, quindi il codice in questo modo:
    codice:
    #include <iostream>
    
    
    using namespace std;
    
    
    int main()
    {
        int somma,n1,n2;
        cout<<"Inserisci il primo numero"<<endl;
        cin>>n1;
        cout<<"Inserisci il secondo numero"<<endl;
        cin>>n2;
        somma=n1+n2;
        cout<<"La somma e' "<< somma;
    
    
    }
    non presenta problemi..Quindi, la sintassi "endl" oltre a dare ordine al programma (secondo un video tutorial che ho seguito..) ha anche qualche funzione particolare per permettere l'esecuzione?
    Ultima modifica di Pierfrank; 26-09-2015 a 17:19

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Veramente nel primo codice c'è anche questa
    /linea 10

    che è sbagliata ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Veramente nel primo codice c'è anche questa
    /linea 10

    che è sbagliata ...
    Ovviamente quello è un errore di svista...quella sintassi l'ho aggiunta dopo per indicare le linee degli errori...scrivendo il commento correttamente // linea 10, l'errore rimane perchè il problema alla base è un altro.
    Ultima modifica di Pierfrank; 26-09-2015 a 18:48

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Nella riga

    cout<<"Inserisci il primo numero"<<;

    alla fine non devi scrivere << ma


    cout<<"Inserisci il primo numero";
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Nella riga

    cout<<"Inserisci il primo numero"<<;

    alla fine non devi scrivere << ma


    cout<<"Inserisci il primo numero";
    Grazie mille funziona ora. Ne approfitto per un'altra domanda. Per creare uno spazio tra una riga e l'altra su output si utilizza il comando cout<<endl;
    Ma se io volessi andare da capo senza dover usare questa stringa, per esempio da
    cin>> x;
    si potrebbe aggiungere un comando tipo
    cin>>x>> endl; // so che è sbagliato dal log del programma
    per velocizzare il ritorno a capo o qualsiasi altra sintassi senza dover scrivere di nuovo cout<<endl; ?

  6. #6
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Devi inserire '\n' per andare a capo.
    codice:
    cout << '\n';
    cout.put('\n');
    cout << endl;
    hanno lo stesso effetto.
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

  7. #7
    Rispetto a '\n' endl forza anche un flush del buffer di output (cosa che di rado è necessaria, dato che stdout di default è già line-buffered e comunque cin fa un flush di cout prima di ogni operazione di input).
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.