将文件中一串小写字母变大写字母
#include "stdio.h"
#include "conio.h"
main()
{ int i;
char c;
FILE *fp;
fp= fopen("example.c","r+");
for(i=0;i<4;i++)
{ c=fgetc(fp);
c=c-32;
fseek(fp,-1,1);
fputc(c,fp);
fflush(fp);
}
fclose(fp);
}
这个程序中在win-tc中运行时,只能将"example.c"文件中的第一个小写字母变成大写,而后面的字母却没有变化.请高手指点迷津.
问题点数:10、回复次数:5Top
1 楼alan001(星岛孤裔林郎君)回复于 2006-12-02 07:47:37 得分 0
for(i=0;i<4;i++)
{ c=fgetc(fp);
c=c-32;
fseek(fp,-1,1);
fputc(c,fp);
//fflush(fp);
}
Top
2 楼jixingzhong(瞌睡虫·星辰)回复于 2006-12-02 09:49:55 得分 0
程序没有问题 ...
fflush(fp); 可有可无,只是写文件的具体时间不同而已, 写的动作是一样的Top
3 楼jixingzhong(瞌睡虫·星辰)回复于 2006-12-02 09:50:40 得分 0
恩, 请确认在 文件中,
头四个字符都是 小写字母Top
4 楼flyseahappy(花花世界)回复于 2006-12-02 14:11:36 得分 0
jixingzhong(瞌睡虫·星辰)说fflush可有可无?
这我完全不同意,因为缓冲机制导致在某些编译环境下结果让你意外,
不信的话可以试试VC6Top
5 楼scmyzkr()回复于 2006-12-03 00:30:12 得分 0
fseek(fp,-1,1);
每次循环都将指针定位到了上一次的位置,当然就在原地不动了Top




