今天做实验的时候要求输入几个字符存到text1中,然后再从text1中读取,将里面的大写字母转为小写,小写转大写,存到text2中。程序没有报错,但是我在找这两个文件的时候,点开他们里面都是乱码这是怎么回事啊?
以下是代码
#include<stdio.h>
#include<stdlib.h>
void main()
{
FILE *fp1,*fp2;
char a,b;
fp1=fopen("text1.txt","w");
if(fp1==NULL) printf("error1");
while(a=getchar()!=EOF)
{
fputc(a,fp1);
}
fclose(fp1);
if((fp1=fopen("text1.txt","r"))==NULL) printf("error2");
if((fp2=fopen("text2.txt","w"))==NULL) printf("error3");
while(!feof(fp1))
{
b=fgetc(fp1);
if(b>='A'&&b<='Z') b+=32;
else if(b>='a'&&b<='z') b-=32;
fputc(b,fp2);
}
fclose(fp1);
fclose(fp2);
}
这是TXT文件的截图
第10行的 while(a=getchar()!=EOF) 改成
while( (a=getchar()) !=EOF)
把a=getchar()用() 括起来。
修改后运行结果如下图所示:
如果解决了你的问题,请点击我的回答下方的“采纳该答案”帮忙采纳一下,谢谢。
变量a 改成int 类型 eof的值是-1 char没法接受负值
#include<stdio.h>
int main()
{ printf("xswl"); }