很急!问一个关于C语言文件读取的问题

hh550815 2012-11-06 12:38:11
while (!feof(filepoint))
{
m = 0;
for (i = 0;i < 50;i++)
word[i] = NULL;

ch = fgetc(filepoint); 此处ch读进来的是中文,我从调试看到ch='?'
printf("%c\n",ch);
while (!isalpha(ch)) 然后isalpha(ch)就中断了
ch = fgetc(filepoint);
while (isalpha(ch))
{
word[m++] = ch;
ch = fgetc(filepoint);
}
printf("%s\n",word);
}
我想读取一个文件,跳过里面的所有中文内容,将里面的英文单词一行一行地输出!!!
真的是跪求!
...全文
226 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hh550815 2012-11-06
那我该怎么办啊哥哥!!!我只要跳过中文读取英文啊!!我该怎么跳啊!!!!
回复
xiaoyaoxiaonizi 2012-11-06
中文在内存中不止占一个字节,具体多少字节要看编码格式,你一个字节一个字节第判断肯定是不行的。还是先学学编码格式再说。
回复
比较下输入文字的ASCII码,如果不在0-9和A-Z,a-z之间的全部忽略
回复
hh550815 2012-11-06
引用 14 楼 enlinux 的回复:
这个问题 需要先学字符编码 , 同样的字,如‘你’字,在utf8编码占3个字节,在gb2312占2个字节,。。。,需要你首先选择字符编码,其次解码后判断中文的长度。 如果你不懂字符编码,短期内是解决不了这个问题的。
坑爹!小组课程设计下星期就要验收了
回复
子善旬 2012-11-06
这个问题 需要先学字符编码 , 同样的字,如‘你’字,在utf8编码占3个字节,在gb2312占2个字节,。。。,需要你首先选择字符编码,其次解码后判断中文的长度。 如果你不懂字符编码,短期内是解决不了这个问题的。
回复
michael1985_ 2012-11-06
你直接把文件里面的内容全部读取出来,遍历一次不就可以了吗??
回复
有点清眸 2012-11-06
只是换行符的区别啊。
回复
hh550815 2012-11-06
引用 9 楼 Yaoxin_ 的回复:
你把文本格式改成UIF-8 试试。 window和linux下的标准C代码有区别吗?真是的。
大哥哥还是不行啊!!! UTF-8还是报错啊 不能有中文
回复
hh550815 2012-11-06
引用 9 楼 Yaoxin_ 的回复:
你把文本格式改成UIF-8 试试。 window和linux下的标准C代码有区别吗?真是的。
可是WINDOWS下的文本文件跟LINUX下的文本文件就有区别了啊
回复
有点清眸 2012-11-06
你把文本格式改成UIF-8 试试。 window和linux下的标准C代码有区别吗?真是的。
回复
hh550815 2012-11-06
引用 7 楼 Yaoxin_ 的回复:
引用 6 楼 hh550815 的回复:引用 5 楼 Yaoxin_ 的回复:程序貌似没啥问题。 word[i] = 0; --->这样初始化 可以给出一些细节么? 如果filepoint指向一个中文内容的文本文件 程序在isalpha就会出错 而我希望实现的功能是 读取一个中英文混合的文本文件,忽略其中的中文,输出里面的英文 知道啊~~ 我在l……
哥哥我是WINDOWS啊!!别坑爹啊!!!我就是中断了!!
回复
有点清眸 2012-11-06
引用 6 楼 hh550815 的回复:
引用 5 楼 Yaoxin_ 的回复:程序貌似没啥问题。 word[i] = 0; --->这样初始化 可以给出一些细节么? 如果filepoint指向一个中文内容的文本文件 程序在isalpha就会出错 而我希望实现的功能是 读取一个中英文混合的文本文件,忽略其中的中文,输出里面的英文
知道啊~~ 我在linux下建一个中英文均有的文本,可以用isalpha测试的。 要不你改一下文本格式?
回复
hh550815 2012-11-06
引用 5 楼 Yaoxin_ 的回复:
程序貌似没啥问题。 word[i] = 0; --->这样初始化 可以给出一些细节么?
如果filepoint指向一个中文内容的文本文件 程序在isalpha就会出错 而我希望实现的功能是 读取一个中英文混合的文本文件,忽略其中的中文,输出里面的英文
回复
有点清眸 2012-11-06
程序貌似没啥问题。 word[i] = 0; --->这样初始化 可以给出一些细节么?
回复
hh550815 2012-11-06
引用 3 楼 whizer 的回复:
不要用标准的ASII码操作函数,直接用内存读写的方式进行读写,然后判断读出的内容是否为字符.
怎么内存读写方式啊!!!
回复
whizer 2012-11-06
不要用标准的ASII码操作函数,直接用内存读写的方式进行读写,然后判断读出的内容是否为字符.
回复
相关推荐
发帖
C语言
创建于2007-09-28

6.3w+

社区成员

C语言相关问题讨论
申请成为版主
帖子事件
创建了帖子
2012-11-06 12:38
社区公告
暂无公告