2011-07-06 93 views
1

我想在同一個語句中使用輸入和輸出操作符iostream,對用戶來說不是更好,但我試圖沒有成功獲得。使用IOSTREAM在同一行輸出和輸入

的代碼片段:

int value = 0; 
std::cout << "Number 1: " <<std::cin>> value << std::endl; 

有沒有辦法做到這一點只用CIN COUT?

+2

什麼,CIN保持代碼的可讀性;一堆<< >> >><< >><<會讓它變得一團糟。 –

回答

3
struct IO { 
    template <typename T> 
    const IO & operator << (const T & t) const { 
     std :: cout << t; 
     return *this; 
    } 

    template <typename T> 
    const IO & operator >> (T & t) const { 
     std :: cin >> t; 
     return *this; 
    } 
}; 

IO() << "Number 1: " >> value; 
+0

對不起,但這裏不起作用。我不知道我的執行問題是否是。 –

+1

@布魯諾:「不工作」是你可能在這裏說的第二個最不有用的東西,只在「香蕉!」之後。 –

+1

@spraff:[* Ahem *](http://www.ideone.com/Abw29)。 –

-3
std::cout << "Number 1: "; 
std::cin >> value; 

應該這樣做。

+0

這是兩條線。 :-) –

+0

我知道,但我希望另一半,因爲它對我和其他人發起挑戰。 –

+0

OP特意詢問_alternative_。 Plz2readTheQ! –

2

有點亂,但我認爲這是你使用COUT想

std::cout<<"Data : "<<val<<std::endl<<(std::cin>>val)<<"\r"<<"\t\r\n"<<std::flush;