fputs换行问题
  • 板块学术版
  • 楼主魑魅魍魉唬
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/2 18:57
  • 上次更新2024/3/2 20:45:23
查看原帖
fputs换行问题
317218
魑魅魍魉唬楼主2024/3/2 18:57

求助大佬,这个问题是: 有一个文件有三行内容如下: abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

1234567890

修改内容,方式为: a 用 z 代替, b 用 y, c 用 x,以此类推; A 用 Z 代替, B 用 Y 代替, C 用 X,以此类推; 1变为2,2变3.……, 0变为1; 输出的时候我用fputs但是我不知道这个换行的条件是什么求助大佬问问,怎么判断,代码如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
   FILE *fp=NULL,*fq;
   char buff[200];
   fp=fopen("C:\\Users\\魑魅魍魉\\Desktop\\test4.txt","w+");
   fq=fopen("C:\\Users\\魑魅魍魉\\Desktop\\test5.txt","w+");
   fputs("abcdefghijklmnopqrstuvwxyz\n",fp);
   fputs("ABCDEFGHIJKLMNOPQRSTUVWXYZ\n",fp);
   fputs("0123456789\n",fp);
   fclose(fp); 
   fp=fopen("C:\\Users\\魑魅魍魉\\Desktop\\test4.txt","r");
   while(fgets(buff,200,fp)){
   int l=strlen(buff);
   for(int i=0;i<l;i++){
   	if(buff[i]>='a'&&buff[i]<='z'){
   		buff[i]='a'+'z'-buff[i];
   		fprintf(fq,"%c",buff[i]);
   		if(buff[i+1]=='\0'){//换行条件,现在这个判断换行条件是错误的
   			fputs("\n",fq);
   		}
   	}
   	else if(buff[i]>='A'&&buff[i]<='Z'){
   		buff[i]='A'+'Z'-buff[i];
   		fprintf(fq,"%c",buff[i]);
   		if(buff[i]==' '){
   			fputs("\n",fq);
   		}
   	}
   	else if(buff[i]>='0'&&buff[i]<='9'){
   		buff[i]='0'+'9'-buff[i];
   		fprintf(fq,"%c",buff[i]);
   		if(buff[i]==' '){
   			fputs("\n",fq);
   		}
   	}
   
   }}
   fclose(fp);
   fclose(fq);
   cout<<"成功"<<endl;
   return 0;
} 
2024/3/2 18:57
加载中...