2013-03-19 126 views
4

我已經嘗試了很多解決方案將字符轉換爲Ascii。他們都遇到了問題。將char轉換爲ASCII?

一個解決辦法是:

char A; 
int ValeurASCII = static_cast<int>(A); 

但是VS提到的static_cast是無效的類型轉換!

PS:我的A始終是特殊字符(而不是數字)

+3

可能DUP http://stackoverflow.com/questions/5029840/convert-char-to-int-in-c-and-c – 2013-03-19 16:42:37

+0

INT ValeurASCII =(INT)A: – Neppinger 2013-03-19 16:43:17

+6

@Neppinger:爲什麼甚至投?! – 2013-03-19 16:43:35

回答

0

您可以使用字符的是單字節的整數之一。

5

呃,有什麼不對的:

#include <iostream> 

using namespace std; 

int main(int, char **) 
{ 
    char c = 'A'; 

    int x = c; // Look ma! No cast! 

    cout << "The character '" << c << "' has an ASCII code of " << x << endl; 

    return 0; 
} 
+0

srand?蘭德?從來沒有聽說過! – user2187476 2013-03-19 16:48:21

+0

忽略它們 - 它們在「轉換」的「邏輯」中沒有區別;他們只是爲了確保每次運行程序時都會有不同的性格。我帶走了他們。 – 2013-03-19 16:49:42

+0

int x = c;正在鑄造。你在這裏做的是隱式轉換,因爲'x'是整數,'c'是char。它相當於int x =(int)c(這是一個明確的強制轉換) – thinkquester 2013-03-19 16:52:44

12

一個char是整型。當你寫

char ch = 'A'; 

你設置的ch到任何數量的編譯器用來表示字符'A'值。目前這通常是'A'的ASCII碼,但這不是必需的。你幾乎可以肯定地使用一個使用ASCII的系統。

像任何數字類型,你可以用普通數字初始化:

char ch = 13; 

如果你想要做的做一個char值算術,只是做:ch = ch + 1;

然而,爲了顯示值,你必須得到iostream庫中的假設,你想顯示char值爲字符而不是數字。有幾種方法可以做到這一點。

std::cout << +ch << '\n'; 
std::cout << int(ch) << '\n'