#include<stdlib.h>
int main()
{
FILE *fp;
if((fp=fopen("D:\\123.txt","r"))==NULL)
{
printf("Error!\n");
exit(0);
}
//假设d盘的123.txt中有四个汉字:好好学习,下面的部分输出第一个汉字
char ch[3];
int i;
for(i=0;i<2;i++)
ch[i]=getc(fp);
ch[i]='\0';
puts(ch);
//假设d盘的123.txt中有四个汉字:好好学习,下面的部分输出全部汉字但是这样操作有缺陷:那就是如果有三个汉字一个字母的话,输出将发生错误。你可以将123.txt中的内容改为:学习过C ,你试一试就知道了
rewind(fp);
char ch2[9];
for(i=0;i<8;i++)
ch2[i]=getc(fp);
ch2[i]='\0';
puts(ch2);
fclose(fp);
return 0;
}
另外如果我们要想一个一个的读取汉字;我们可以这样修改代码如下。申请的空间大小有具体情况而定。
for(i=0;i<272051;i++)
{
if(i%3==2)
ch[i]='\0';
else
ch[i]=getc(fpg);
}
ch[i]='\0';
char *q=ch;
//cout<<ch<<endl;
char p[2];
for(i=0;i<181368;i++)
{
strcpy(p,q);
q+=3;
cout<<p<<endl;
}
http://zhidao.baidu.com/question/7967174.html http://z.baidu.com/question/147472517.html?fr=uc_push http://z.baidu.com/question/147877384.html?fr=uc_push 今天看到一个c++学习群里的一个哥们写了一段程序: #include <iostream> 启示是char可以存放汉字,但需要一个char型的长度为3的一维数组来存放汉字。接着我试着编了一个程序,如下: #include <iostream> |