我遇到此错误的问题。请注意,我对c编程有点新意,而且不是偶然的错误。
这是我的错误:
incomplete universal character name \u
这是我的代码(部分代码):
while( (ch=getchar())!=EOF )
{
++caractere;
switch(ch)
{
case '\n': ++linii;break;
case '\t': ++cuvinte;break;
case ' ': uiWord=YES;break;
case '\u': if(uiWord==YES)
{
++cuvinte;
uiWord=NO;
}
break;
}
}
谁能告诉我怎样才能解决这个问题?感谢。
答案 0 :(得分:5)
\u
与id(十六进制代码)一起使用来表示unicode字符,例如\u20AC
是€的代码。它本身不可能。
答案 1 :(得分:1)
'\ u'表示一个unicode字符,在代码中写错了,正确的格式是,例如:
'\ u2006'
\ u后面应该跟4个数字代表字符。
答案 2 :(得分:1)
稍微扩展一些其他答案:当你使用转义序列时,它被视为一个字符。 \n
是一个字符,尽管要键入两次键击。
随后,\u1234
是计算机视角的一个字符。 \u
没有意义:你已经给了它半个字符代码。
至于你如何解决这个问题,这取决于你想做什么。如果您只想捕获一个特定的unicode字符,请将switch语句更改为case '\u1234':
,其中1234是字符代码点的十六进制表示形式。
相反,如果您想要处理不能用ASCII表示的字符,那么您可能需要类似的内容:
if(ch < 128)
{
// Check for \n, \t and space here
}
else
{
// Unicode or ANSI codepage
}