标题:[求助]帮忙修改一个文件操作的程序
只看楼主
starit
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2010-10-5
 问题点数:0 回复次数:0 
[求助]帮忙修改一个文件操作的程序

这个程序的目的是打开一个txt文件,输出空格代替'[' ']'及其中间的内容,但是运行后会无限写入空格,调试发现在循环中ch的值一直没变,原因是运行fseek(fp1,-1*sizeof(char),1);之后指针就回到文件起点了,可是fseek第三个参数设置为1不是表示从指针本身位置进行移动么,请问这是怎么回事?

#include <stdio.h>
#include<stdlib.h>
void main()
{
    char path[50],ch;
    FILE *fp1;
    int i;
    printf("please input the path of the file:");
    gets(path);
    if((fp1=fopen(path,"r+"))==NULL)
    {
        printf("the file is not exist!\n");
        exit(0);
    }
    do
    {
        ch=fgetc(fp1);
        if(ch=='[')
            for(i=0;ch!=']'&&i<=50;i++)//i用来防止过长
            {
                fseek(fp1,-1*sizeof(char),1);//1表示文件指针在当前文件指针位置
                fputc(' ',fp1);
                ch=fgetc(fp1);
            }
    }while(ch!=EOF);
    printf("转换完成\n");
    fclose(fp1);
}


搜索更多相关主题的帖子: include please 起点 file 
2011-06-26 11:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-344023-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018063 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved