C语言文件输入/输出问题
程序要求:编写程序将abc.txt文件中文本转换为大写
代码如下:
#include<stdio.h>
#include<ctype.h>
int main(void) {
FILE *fp;
char ch;
fprintf(stdout,"********\n");
if ((fp=fopen("abc.txt","r+"))!=NULL) //打开文件
{
while((ch=getc(fp))!=EOF) //判断是否为结尾
{
ch=toupper(ch);
putc(ch,fp); } //转换大写
fclose(fp);
}
else printf("Can not open file");
getch();
return 0;
}
我把abc.txt和编译出来的程序放在同一文件夹里了..上述代码执行后abc.txt文件内容没有变动...想了半天没想明白..请教各位大神..我明白读一个字符后读写位置自动后移,然后再去写的时候不就应该覆盖下一个字符了吗? 此时内容应该为aA啊...但我的程序执行完之后还是ab..请问这是为什么啊
[解决办法]
- C/C++ code
ch = fgetc(fp); ch = toupper(ch); fseek(fp, 0, SEEK_CUR); fputc(ch, fp);
[解决办法]