很急!问一个关于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);
}
我想读取一个文件,跳过里面的所有中文内容,将里面的英文单词一行一行地输出!!!
真的是跪求!
...全文
246 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
hh550815 2012-11-06
  • 打赏
  • 举报
回复
那我该怎么办啊哥哥!!!我只要跳过中文读取英文啊!!我该怎么跳啊!!!!
xiaoyaoxiaonizi 2012-11-06
  • 打赏
  • 举报
回复
中文在内存中不止占一个字节,具体多少字节要看编码格式,你一个字节一个字节第判断肯定是不行的。还是先学学编码格式再说。
这个娜戒海了 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码操作函数,直接用内存读写的方式进行读写,然后判断读出的内容是否为字符.

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧