2014-02-24 67 views
0

我有一個家庭作業,我有點麻煩。我似乎沒有錯誤,但是當我運行程序和輸入文本....沒有任何反應。簡單程序的輸入/輸出問題。

例如,爲了測試它,我通常會放入「羅伯遜,鮑勃約翰」,然後回車。誰能幫我這個?

#include <iostream> 
#include <string> 

using namespace std; 

int main() { 

//Title and instructions 
cout << "This program will output your name in first-to-last order!" << endl; 
cout << "Please type your name in the following manner: last, first middle."; << endl; 

//Declare the strings being used 
string firstName; 
string middleName; 
string lastName; 

//Put user input into strings, ignore the comma 
cin >> lastName >> firstName >> middleName >> endl; 
cin.ignore(','); 

//Output the name in first-to-last order 
cout << "Your name is: " << first <<' '<< middle <<' '<< last << endl; 

//Pause before exiting 
return 0; 

} 
+2

此代碼不能編譯。如果您需要我們的幫助,請告訴我們真實的代碼。 – Beta

+3

'//退出之前暫停返回0;' - 這不是暫停,而是[返回代碼](http://en.wikipedia.org/wiki/Exit_status)。 – soon

回答

0

首先,你有幾個編譯錯誤;第二個cout上的額外分號,當您嘗試輸出cout時錯誤的變量名稱等,但真正的問題是您的cin.ignore(',');。由於某種原因,它似乎掛着。我會根據the cin documentation猜測,它將逗號解釋爲一個數字,它會忽略許多字符。

您需要在cin之後自行移除逗號;我已經把它作爲一個練習。

#include <iostream> 
#include <string> 

using namespace std; 

int main() { 

//Title and instructions 
cout << "This program will output your name in first-to-last order!" << endl; 
cout << "Please type your name in the following manner: last, first middle." << endl; 

//Declare the strings being used 
string firstName; 
string middleName; 
string lastName; 

//Put user input into strings, ignore the comma 
cin >> lastName >> firstName >> middleName; 

//Output the name in first-to-last order 
cout << "Your name is: " << firstName <<' '<< middleName <<' '<< lastName << endl; 

//Pause before exiting 
return 0; 

} 
+0

啊,我偶然抄了一些舊代碼。謝謝你的回答,幫了我很多。從字面上看,我的第三項任務哈哈。 – yves

+0

@ user3345181沒問題。我們都必須從某個地方開始!^_ ^不要忘了接受我的答案,通過檢查旁邊的小複選標記,這將給我們一些聲譽。 – computerfreaker

+0

@ user3345181另外,這裏有幾個網站,您可以從中學習並查找相關內容。他們應該在你的旅程中幫助你。 [cplusplus.com](http://www.cplusplus.com/reference/)和[cppreference.com](http://en.cppreference.com/w/cpp) – computerfreaker

1

既然你說彙編,想必你真正的代碼沒有在第二cout線流氓;,不會嘗試讀入endl,並使用在最後cout正確的變量名。

假設沒有其他區別,問題是這樣的:

cin.ignore(','); 

我不知道你要的是做什麼;但它會一直等到您輸入額外的44個字符(解釋','爲其ASCII值44)後再繼續。

如果您想忽略逗號後的逗號,最簡單的方法是用逗號讀取它,然後用lastName.pop_back()(可能首先檢查是否有逗號)將其刪除。

順便說一下,我的父親沒有中間名,我的妹妹有兩個。他們是不允許使用你的程序的?