2015-10-01 57 views
-4

我試過我的水平最好,但無法弄清楚我的代碼出了什麼問題 我得到一個錯誤代碼"error: expected ' ; ' after return statement."「預計」;'返回聲明後,有人可以告訴我什麼是我的代碼錯了嗎?

注:這是我的第一個程序之外的 「hello world」,任何幫助將不勝感激

#include <iostream> 
using namespace std; 

int main() { 

int celsius, fahrenheit; 

//Get degrees in celsius 
cout << "Please input degrees Celsius: \n"; 
cin >> celsius; 

//convert celsius to fahrenheit 
fahrenheit = celsius * 1.8 + 32; 

//display degrees farhenheit/ thank you message 
cout << "\n" << "Degrees Fahrenheit: \n" << fahrenheit << "\n"; 
cout << "\n" << "Thank you for using my Celsius to Fahrenheit converter. \n" << "\n"; 

    { 
     int yes = 1, no = 0; 
     cout << "do you wish to convert again? \n"; 
     cin >> yes; 

     if (yes == 1) { 
      return cout << "please enter degrees Celsius" ; 
      cin >> celsius; 

      //convert celsius to fahrenheit 
      fahrenheit = celsius * 1.8 + 32; 
      cout << "\n" << "Degrees Fahrenheit: \n" << fahrenheit << "\n"; 
     } else { 
      return cout "fine"; 
     } 
    } 
    return 0; 
} 
+0

您有不必要的括號'{}'太。 – kemotoe

回答

1

cout之前,擰下兩顆垃圾return,並添加<<cout"fine"之間。

4

好了,你已經在你的代碼3級的錯誤:如果塊你寫return cout << "please enter degrees Celsius" ;(第31行)

1.In的。但cout不會返回任何內容(請參閱下面的P.S.以獲取詳細信息)。它更改爲cout << "please enter degrees Celcius";

  • 在您已寫入return cout "fine";(線41)else塊。將其更改爲cout << "fine";

  • 在代碼中有未使用的變量「no」。它只在那裏,但不參與代碼。刪除該變量。

  • 你的最終代碼應該是這樣的:

    #include <iostream> 
    
    using namespace std; 
    
        int main() 
    { 
    
    int celsius, fahrenheit; 
    
    //Get degrees in celsius 
    cout << "Please input degrees Celsius: \n"; 
    
    cin >> celsius; 
    
    //convert celsius to fahrenheit 
    fahrenheit = celsius * 1.8 + 32; 
    
    //display degrees farhenheit/ thank you message 
    cout << "\n" << "Degrees Fahrenheit: \n" << fahrenheit << "\n"; 
    cout << "\n" << "Thank you for using my Celsius to Fahrenheit converter. \n" << "\n"; 
    
    
        int yes = 1; 
    
        cout << "do you wish to convert again? \n"; 
        cin >> yes; 
    
         if (yes == 1) 
          { 
           cout << "please enter degrees Celsius" ; 
           cin >> celsius; 
    
           //convert celsius to fahrenheit 
           fahrenheit = celsius * 1.8 + 32; 
    
           cout << "\n" << "Degrees Fahrenheit: \n" << fahrenheit << "\n"; 
          } 
          else 
          { 
           cout << "fine"; 
          } 
    return 0; 
    
    
    } 
    

    附:運營商「< <」的確返回std::ostream對象,即cout。這個對象可以轉換爲bool,但不能轉換爲int。但是因爲你對C++完全陌生,所以你現在不需要擔心這一點。只需使用我向您展示的代碼即可。

    +0

    'cout'不會返回任何東西,我想,這足夠了,因爲'cout'是一件事物,而不是操作者。該運算符是'<<',它*返回一些東西;這裏使用的重載('std :: ostream&operator <<(std :: ostream&,const char *)')返回一個流;具體來說,與用作左操作數的流相同。所以'cout <<「foo」'返回'cout'。 'std :: ostream'對象可以轉換爲'bool'值(如果流可以寫入,則轉換爲true),但不能轉換爲int。所以這個陳述是不正確的(並且回報是不希望的),但不是因爲你的理由。 – rici

    +0

    我在答案中的意思是說,cout不會返回溫度的值。它只是顯示他的屏幕上的價值。我只是不想通過告訴他關於ostream對象和操作符重載來混淆他。所以我只是告訴他從這些陳述中刪除「返回」,並在cout之後使用「<<」。 –

    +0

    不要混淆的願望是高貴的,但要引起人們普遍的誤解,認爲'cout <<'是'cout statement'*會引起混亂。 OP可能不明白「返回」的作用,但你的回答也不會促進這種理解。 – rici

    0
    return cout << "please enter degrees Celsius" ; //line 31 
    return cout "fine"; //line 41 
    

    從兩個語句中刪除返回值。

    COUT是ostream class.You的對象可以閱讀更多關於couthere

    相關問題