2014-02-14 31 views

回答

2

字符會自動格式化爲%c。要打印整數爲char(如果你真的想),你可以把它轉換:

int x = 42; 
std::cout << (char) x; 

閱讀工作方式類似(它的行爲類似於cout,與其說是scanf)。無需格式:

char c; 
std::cin >> c; 

下面是一個回聲例如:

char c; 
while(std::cin >> std::noskipws >> c) { 
    std::cout << c; 
} 

一個需要注意的有cin是,它是有狀態的。如果您已在代碼中使用cin,則可能需要使用std::cin.clear()

+0

重置錯誤狀態位請使用一種數據類型,最好是字符。 – mcandre

+0

我試過在一個簡單的'echo.c'程序中使用這個片段,但是1)空白被省略了,2)這個字符永遠不會等同於'EOF',所以程序永遠不會停止。 – mcandre

+1

@mcandre對不起,我不明白你的意思是「請使用一種數據類型,最好是字符」。關於空白的好處。有'noskipws'如果你不想忽略它。 '>>'操作符實際上會返回一個對自身的引用來支持操作鏈。 EOF使用'cin.eof()'進行測試。我添加了一個回聲示例。 – user2079303

0

找不到任何格式化,但這個工程:

int c = 'x'; 

cout.put(c); 
1

如果你只是傳遞一個char到outstream,它會打印爲一個char:

char a = 'a'; 
std::cout << a; 

- >

一個

如果你想輸出intchar,你可以將它轉換:

int i = 'i'; 
std::cout << static_cast<char>(i); 

- >

2

沒有格式化,也有operator<<不同的重載。

char c = 'a'; 
cout << c; 
int i = 42; 
cout << i;