2012-11-22 12 views
5

Im lettura attraverso "The C++ Programming Language" e il mio incarico attuale è di fare un programma che prende due variabili e determina il più piccolo, più grande, somma, differenza, prodotto, e il rapporto dei valori.Come iniziare una nuova riga in C++, mentre facendo equazioni

problema è che non riesco a iniziare una nuova riga. "\ n" non funziona perché ho delle variabili dopo la citazione. E "< < endl < <" funziona solo per la prima riga. Ho cercato su Google di uscire da questo problema e sto arrivando a breve.

#include <iostream> 
#include <string> 
#include <vector> 
#include <algorithm> 
#include <cmath> 
using namespace std; 
inline void keep_window_open() {char ch;cin>>ch;} 
int main() 
{ 
    int a; 
    int b; 
    cout<<"Enter value one\n"; 
    cin>>a; 
    cout<<"Enter value two\n"; 
    cin>>b; 
    (a>b); cout<< a << " Is greater than " << b; 
    (a<b); cout<< a << " Is less than " << b; 

    keep_window_open(); 
    return 0; 
} 
+0

nota che la differenza tra un ' "\ n"' e 'std :: endl' è che quest'ultimo comprende un' flush'; questo non farà differenza per te in questo caso. – Keith

+0

Puoi concatenare '<<' come già fatto: 'if (a> b) cout << a <<" è maggiore di "<< b <<" \ n ";'. Nota che '(a> b);' di per sé non ha alcun effetto; calcola semplicemente se 'a' è maggiore di' b' e non fa nulla con il risultato. Vuoi 'if (condition) {...}' per la ramificazione condizionale. –

risposta

2

È possibile uscita std::endl al flusso di passare alla riga successiva, in questo modo:

cout<< a << " Is greater than " << b << endl; 
5

Siete alla ricerca di std::endl, ma il codice non funzionerà come previsto.

(a>b); cout<< a << " Is greater than " << b; 
(a<b); cout<< a << " Is less than " << b; 

Questa non è una condizione, è necessario riscrivere in termini di

if(a>b) cout<< a << " Is greater than " << b << endl; 
if(a<b) cout<< a << " Is less than " << b << endl; 

È inoltre possibile inviare il carattere \n per creare una nuova linea, ho usato endl come ho pensato che è quello che si cercavano. Vedere this thread su quali potrebbero essere i problemi con endl.

L'alternativa è scritto come

if(a>b) cout<< a << " Is greater than " << b << "\n"; 
if(a<b) cout<< a << " Is less than " << b << "\n"; 

Ci sono alcuni "caratteri speciali" come quello, \n essendo nuova linea, \r essendo ritorno a capo, \t essendo scheda, ecc ... roba utile per sapere se stai iniziando.

+0

Grazie. Proprio quello che stavo cercando. –

+1

Non c'è una buona ragione per lui per preferire 'std :: endl' su' "\ n" 'in questo programma, e c'è motivo per lui di preferire' "\ n" 'in generale. Google "endl fiasco". –

+0

@ Robᵩ, ti rendi conto che probabilmente è il suo primo programma C++ e che vuole semplicemente una nuova linea? 'endl' è probabilmente come viene spiegato nel libro ... non l'ho letto negli anni – emartel

Problemi correlati