相关疑难解决方法(0)

c读取非ASCII字符

我解析,涉及到的字符,如文件æ ø å.如果我们假设我已经存储了一行文本文件,如下所示

#define MAXLINESIZE 1024
char* buffer = malloc(MAXLINESIZE)
...
fgets(buffer,MAXLINESIZE,handle)
...
Run Code Online (Sandbox Code Playgroud)

如果我想计算一行中的字符数.如果我尝试执行以下操作:

char* p = buffer
int count = 0;
while (*p != '\n') {
    if (isgraph(*p)) {
        count++;
    }
    p++;
}
Run Code Online (Sandbox Code Playgroud)

这忽略了任何的发生æ ø å

即:计算"aåeæioøu"将返回5而不是8

我是否需要以另一种方式阅读文件?我不应该使用char*但是int*

c text character-encoding non-ascii-characters

5
推荐指数
1
解决办法
3052
查看次数