| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 656 人关注过本帖
标题:这个程序哪里错了?文件修改
只看楼主 加入收藏
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
结帖率:92.45%
收藏
已结贴  问题点数:20 回复次数:10 
这个程序哪里错了?文件修改
#include<stdio.h>
#include<stdlib.h>
void main()
{FILE *fp1,*fp2;
char ch1,ch2;
fp1=fopen("C:\\String.txt","r+");
fp2=fp1;
while((ch1=fgetc(fp1))!=EOF);
{if('a'<=ch1&&ch1<='z')ch2=ch1-32;
else if('A'<=ch1&&ch1<='Z')ch2=ch1+32;
else ch2=ch1;
fputc(ch2,fp2);}
fclose(fp2);
fclose(fp1);
}
搜索更多相关主题的帖子: include 
2010-12-30 17:04
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:8 
如果我没有理解错,楼主的意思是将文件中的字母大写变小写,小写变大写,其他的不变。楼主的操作,原来文件会被新的覆盖。
可能错误的原因有:
文件打开的方式不对,不是以二进制的方式打开,以文本方式打开,文件指针指向文件头,并且要求可以读和写。
还有是:可以对一个文件同时读和写吗?

[ 本帖最后由 qq1023569223 于 2010-12-30 17:40 编辑 ]

   唯实惟新 至诚致志
2010-12-30 17:18
xzy199999
Rank: 4
等 级:业余侠客
帖 子:326
专家分:286
注 册:2010-11-19
收藏
得分:0 
那应该如何修改呢》?

我是初学者
2010-12-30 18:18
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
你是想把文件里的字符大的转换小的 小的转换大的。

Go Go Go
2010-12-30 19:16
xufan123
Rank: 5Rank: 5
等 级:职业侠客
帖 子:226
专家分:318
注 册:2010-11-15
收藏
得分:0 
这个我用两个文件可以 我调试了下 值是对的 一个文件不知道为什么不行   期待!
2010-12-30 20:05
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:4 
r+ 的意思是为读写打开一个文件
2010-12-30 21:02
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:0 
一个文件  也可以运行...
fdsgkadjgagjfjgjafd HGKJHFFDZDCFHBJCFGHJKRFGVHNJM“
2010-12-30 21:08
a343637412
Rank: 7Rank: 7Rank: 7
来 自:そ ら
等 级:黑侠
帖 子:357
专家分:620
注 册:2010-9-26
收藏
得分:0 
原本我在上一个回复的“  后面加了一个文件结束字符..

我的回复  直接消失了....

郁闷....

我把以上代码  保存于C:\\String.txt  但是 输出多了那个字符  没有达到目的
2010-12-30 21:10
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:8 
两个文件对象同时对一个文件读写 这肯定不行三
最好只用一个文件指针
如果计算机内存比较大的话 可以一次读完文件 再内存中操作 然后文件指针到文件开头 写入文件

也可以一次不对完 不过要管理好 文件读写指针

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2010-12-30 21:11
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
//一个一个字符的读 很浪费时间的
#include<stdio.h>
#include<stdlib.h>
void main()
{
    FILE *fp1/*,*fp2*/;
    char ch1,ch2;
    fp1=fopen("D:\\String.txt","r+");
    //fp2=fp1;
    if(!fp1)return;
    //fseek(fp1,0,SEEK_SET);
    while((ch1=fgetc(fp1))!=EOF)//这里多了一个分号 害我调了老半天
    {
        if('a'<=ch1&&ch1<='z')ch2=ch1-32;
        else if('A'<=ch1&&ch1<='Z')ch2=ch1+32;
        else ch2=ch1;
        fseek(fp1,-1,SEEK_CUR);
        fputc(ch2,fp1);
        fseek(fp1,0,SEEK_CUR);
    }
//    fclose(fp2);
    fclose(fp1);
}

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2010-12-30 21:33
快速回复:这个程序哪里错了?文件修改
数据加载中...
 
   



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

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