-1

我遇到了这个错误。请注意,我对 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;
    }

}

谁能告诉我如何解决这个问题?谢谢。

4

3 回答 3

5
于 2013-06-04T13:24:17.363 回答
1

扩展一些其他答案:当您使用转义序列时,它被视为一个字符。\n是一个字符,尽管要键入两次按键。

随后,\u1234是 ONE 字符到计算机的角度。\u没有意义:你给了它半个字符代码。

至于如何解决这个问题,这取决于你想做什么。如果您只想捕获一个特定的 unicode 字符,请将您的 switch 语句更改为case '\u1234':1234 是角色代码点的十六进制表示。

相反,如果您想以不同的方式处理无法用 ASCII 表示的字符,那么您可能需要类似以下内容:

if(ch < 128)
{
// Check for \n, \t and space here
}
else
{
// Unicode or ANSI codepage
}
于 2013-06-04T13:32:51.737 回答
1

'\u' 表示一个 unicode 字符,它在您的代码中写错了,正确的格式是,例如:

'\u2006'

\u 后面应该跟代表字符的 4 位数字。

于 2013-06-04T13:26:33.277 回答