2012-11-22 18 views
5

Czytanie przez "Język programowania C++" i moje obecne zadanie polega na stworzeniu programu, który pobiera dwie zmienne i określa najmniejszą, największą, sumę, różnicę, produkt i proporcję wartości.Jak rozpocząć nową linię w C++ podczas wykonywania równań

Problem polega na tym, że nie mogę rozpocząć nowej linii. "\ n" nie działa, ponieważ mam zmienne po cytacie. I "< < endl < <" działa tylko w pierwszym wierszu. Wylogowałem się z tego problemu i niedługo się z nim uporałem.

#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

Zauważ, że różnica między '" \ n "' i 'std :: endl' jest taka, że ​​ta ostatnia zawiera' flush'; to nie zrobi dla ciebie żadnej różnicy w tym przypadku. – Keith

+0

Możesz łańcuch '<<' jak już zrobiłeś: 'if (a> b) cout << a <<" jest większy niż "<< b <<" \ n ";'. Zauważ, że '(a> b);' samo w sobie nie ma żadnego efektu; oblicza jedynie, czy "a" jest większe niż "b" i nic nie daje z wynikiem. Chcesz 'if (warunek) {...}' dla warunkowego rozgałęzienia. –

Odpowiedz

2

Można wyjście std::endl do strumienia, aby przejść do następnej linii, tak:

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

Szukasz std::endl, ale kod nie będzie działać zgodnie z oczekiwaniami.

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

nie jest to warunek, trzeba przepisać go w kategoriach

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

Można również wysłać znak \n aby utworzyć nowy wiersz, użyłem endl jak myślałem, że to właśnie ty szukali. Zobacz this thread na temat problemów z endl.

Alternatywą jest napisane jak

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

Istnieje kilka „znaki specjalne” tak, \n jest nowa linia, \r jest powrót karetki, \t jest zakładka, itd ... przydatne rzeczy wiedzieć, czy zaczynasz.

+0

Dziękuję. Właśnie tego szukałem. –

+1

Nie ma dobrego powodu, aby preferować 'std :: endl' zamiast' \ n "' w tym programie, i jest powód, dla którego powinien preferować '\ n" 'ogólnie. Google "endl fiasko". –

+0

@ Robᵩ, zdajesz sobie sprawę, że to prawdopodobnie jego pierwszy program w C++ i że po prostu chce nowej linii? 'endl' to prawdopodobnie sposób wyjaśnienia również w książce ... nie przeczytałem go w latach – emartel

Powiązane problemy