2015-09-11 159 views
-4

我確定這是一個簡單的問題,但它讓我堅持了幾個小時。我在這裏宣佈什麼錯了?

#include <iostream> 
using namespace std; 

int main() 
{ 
    char name = mark; 
    int id = 0410448; 

    cout << name << " " << id << endl; 

    return0; 
} 

它給了我一個錯誤,就像我聲稱他們錯了。任何幫助,將不勝感激。

+2

錯誤應該是非常明確的。像*錯誤:'8'不是八進制數字*。然後你會感到困惑,所以你谷歌八進制數如何在C++中工作。 – chris

+2

而'return0'不是一回事。 – juanchopanza

+0

什麼是標記?它是一個字符數組,字符串或其他變量?而且,'return0'應該是'return 0'。 – kRiZ

回答

3

在這段代碼你有4個錯誤:

  • 包括應該是:

    #include <iostream>

    • 爲什麼?您必須指定哪個頭文件必須與預處理器指令一起使用。雖然這可能是因爲的方式,使格式的帖子...
  • char name = markchar* name = "mark";char name[] = "mark";

    • 爲什麼?一個char只能包含一個單個字符,所以你需要一個字符集合來存儲你的完整字符串「mark」,它必須用雙引號使其成爲一個字符串而不是另一個變量的名字。
  • int id = 0410448;應該int id = 410448;

    • 爲什麼?如果你用一個前導零開始一個數字,這意味着它是一個八進制(base8)數字,這個數字只能從0到7,而不是十進制數,從0到9或十六進制,從0到F 。
  • return0應該return 0;

    • 爲什麼?return0是一個變量名稱,但是您從未爲其指定過定義或值,您實際上想要的是使用return關鍵字,其值爲0表示程序已成功結束。
2
char name = mark; 

將不起作用。 char只能包含1個字符,並且還需要用引號括起來。

你需要做的就是這樣的。

#include <string> //this goes at the top 


std::string string_name = "this is a string"; 

編輯:如果你不想使用,那麼你就需要使用一個字符數組

char name[]; 

char* name; 

威爾將解決您的代碼

int main() 
{ 
    char name[] = "mark"; 
    int id = 410448; 
    std::cout << name << " " << id << std::endl; 
return 0; 
} 

最後一件事,你不能使用0410 448,因爲它會嘗試將其視爲八進制。從你的int中刪除0。

+0

您應該嘗試編譯「固定」代碼。 – juanchopanza

+0

嘿,我跳過了「int id」的想法,這不會有問題。幾乎每一行代碼都有問題。 –