2012-11-22 27 views
5

Đọc qua "Ngôn ngữ lập trình C++" và nhiệm vụ hiện tại của tôi là tạo một chương trình có hai biến và xác định nhỏ nhất, lớn nhất, tổng, khác biệt, sản phẩm và tỷ lệ của các giá trị.Cách bắt đầu dòng mới trong C++ khi thực hiện phương trình

Vấn đề là tôi không thể bắt đầu một dòng mới. "\ n" không hoạt động vì tôi có các biến sau dấu trích dẫn. Và "< < endl < <" chỉ hoạt động cho dòng đầu tiên. Tôi googled địa ngục ra khỏi vấn đề này và im đến ngắn.

#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

lưu ý rằng sự khác biệt giữa một '" \ n "' và 'std :: endl' là sau này bao gồm một' flush'; điều này sẽ không tạo ra sự khác biệt nào cho bạn trong trường hợp này. – Keith

+0

Bạn có thể chuỗi '<<' như bạn đã làm: 'if (a> b) cout << a <<" lớn hơn "<< b <<" \ n ";'. Lưu ý rằng '(a> b);' tự nó không có hiệu lực; nó chỉ tính toán liệu 'a' lớn hơn 'b' và không làm gì với kết quả. Bạn muốn 'if (condition) {...}' cho phân nhánh có điều kiện. –

Trả lời

2

Bạn có thể ra std::endl cho luồng dữ liệu để chuyển sang dòng tiếp theo, như thế này:

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

Bạn đang tìm kiếm std::endl, nhưng mã của bạn sẽ không hoạt động như bạn mong đợi.

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

Đây không phải là một điều kiện, bạn cần phải viết lại nó trong điều kiện của

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

Bạn cũng có thể gửi các ký tự \n để tạo ra một dòng sản phẩm mới, tôi đã sử dụng endl như tôi nghĩ đó là những gì bạn đang tìm kiếm. Xem this thread về những vấn đề có thể xảy ra với endl.

Việc thay thế được viết như

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

Có một vài "nhân vật đặc biệt" như thế, \n là dòng mới, \r là vận chuyển trở lại, \t là tab, vv ... công cụ hữu ích để biết nếu bạn đang bắt đầu.

+0

Cảm ơn bạn. Chỉ cần những gì tôi đang tìm kiếm. –

+1

Không có lý do chính đáng nào để anh ta thích 'std :: endl' hơn' "\ n" 'trong chương trình này, và có lý do để anh ta thích' "\ n" 'nói chung hơn. Google "endl fiasco". –

+0

@ Robᵩ, bạn có nhận ra rằng đây có lẽ là chương trình C++ đầu tiên của anh ấy và anh ấy chỉ muốn một dòng mới? 'endl' có lẽ là cách nó được giải thích trong cuốn sách quá ... đã không đọc nó trong năm – emartel

Các vấn đề liên quan