2013-08-01 55 views
0

我正在尝试使用cin.get()读取单个扩展ASCII字符。我想使用cin.get(),这样我就可以读取输入中的空格等。我发现我需要使用无符号的字符来存储字符,但无符号的字符和cin.get()似乎并不一起工作。有没有办法做到这一点?使用cin.get()读取扩展ASCII

基本上,我一直在试图做这样的事情:

unsigned char c; 
while (cin.get(c)) 
{ 
    //do stuff with c 
    .... 
} 
+0

你不需要申报C作为'为了无符号char'因为你能够使用ascii代码0..255 –

回答

3

有没有办法做到这一点?

试试这个

unsigned char c; 
    while ((c = cin.get()) != EOF) 

     { 

      //do some stuff 

     } 

您可以尝试一两件事来读取255个ASCII字符:

int ch; 
unsigned char c; 

while ((ch = cin.get()) != EOF) 

     { 
     c = (unsigned char)(ch); 

     // do some stuff 
     } 
+0

感谢您的建议,但它只是循环 – mcallinder

+0

@Mark你必须根据你的系统'ctrl + Z'在windows上使用EOF(我不太确定它)在寻找它净。否则,只是检查它的工作原理,你可以使用''\ n''或任何其他字符而不是EOF – 0decimal0

+0

谢谢,第二个例子工作正常! – mcallinder