首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎样用fread与fseek从后向前读字符串!解决办法

2012-05-04 
怎样用fread与fseek从后向前读字符串!比如一个.txt文件,内容是“中国万岁”。现在想要倒序输出字符串的内容,

怎样用fread与fseek从后向前读字符串!
比如一个.txt文件,内容是“中国万岁”。

现在想要倒序输出字符串的内容,也就是说先输出‘岁’,再输出‘万’,再输出‘国’,最后输出‘中’。

用fread和fseek该怎样做呢?

C/C++ code
    FILE *pFile = fopen(_T("1.txt"), _T("r"));    char ch[100];    memset(ch, 0, 100);      fseek(pFile, -2, SEEK_END); //这里的第二个参数该如何控制?    fread(ch, 1, 100, pFile); //这里的最后一个参数又该怎样控制?    MessageBox(ch);        fclose(pFile);


[解决办法]
探讨
引用:
中文字符占两个字节的,比如你说的“中国万岁”存到字符串str中算上'\0'应该占9个字节,str[0]和str[1]表示“中”字!理解这个之后:
你把文件里所有数据都取出(取出多少个字节你自己当然清楚),想要倒序输出不就很简单了吗?就拿刚才的例子 str[6]+str[7]=“岁”,str[4]+str[5]="万"。。。。。。。


实际上我并不是要编写读txt……

[解决办法]
探讨
引用:
引用:
引用:
中文字符占两个字节的,比如你说的“中国万岁”存到字符串str中算上'\0'应该占9个字节,str[0]和str[1]表示“中”字!理解这个之后:
你把文件里所有数据都取出(取出多少个字节你自己当然清楚),想要倒序输出不就很简单了吗?就拿刚才的例子 str[6]+str[7]=“岁”,str[4]+str[5]="万"。……

[解决办法]
C/C++ code
#include <stdio.h>FILE *fi,*fo;void main() {    fo=fopen("500M.out","wb");    fi=fopen("500M.in","rb");    fseek(fi,-1L,SEEK_END);    while (1) {        fputc(fgetc(fi),fo);        if (fseek(fi,-2,SEEK_CUR)) break;    }    fclose(fi);    fclose(fo);} 

热点排行