开发者社区> 问答> 正文

C语言或OC或C++ 中英文混合的文件读取前3个字符怎么做?

1.txt 文件内容: 你好a,我是千叶!
期望结果: 你好a

#include <stdio.h>                                                                                                                                                                                                                          
main()                                                                                                                                                                                                                                      
{                                                                                                                                                                                                                                           
FILE *fp;                                                                                                                                                                                                                                   
fp=fopen("1.txt","r");                                                                                                                                                                                                                      
char x[1000];                                                                                                                                                                                                                               
fread(x,sizeof(char),7,fp);   //length=7,对于现在的1.txt结果正确,如果1.txt变成纯中文的文件,第三个汉字就会被截断,请问要怎么处理呢?                                                                                                                                                                                                             
printf("%s",x);                                                                                                                                                                                                                             
}                 
====================================================================================

我的场景是文件比较大,不太想把整个文件读取到NSData或者NSString,所以希望NSData读取部分数据,再转化成NSString,于是就遇到了中文字符截取出现问题的情况。看了大家的回答,发现这个问题可能是个伪命题,毕竟文件的偏移是按字节算的不会去考虑文件字符编码。

展开
收起
a123456678 2016-06-07 19:39:53 2302 0
1 条回答
写回答
取消 提交回答
  • 提供个思路:

    读取文件,你必须知道字符编码
    生成NSString 对象,NSString 有个初始化方法是initWithData:encoding:,然后 NSData 有个初始化方法是dataWithContentsOfFile:
    确保步轴2 正常生成对象后,调用 NSString 的成员方法:substringWithRange:进行截取
    希望能帮到lz

    2019-07-17 19:30:52
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载