一道看上去不怎么难的机试题目,做了好久,做的还挺艰难的。在老弟的帮助下解决了问题,发出来纪念一下!
题目:
在一个文件里面写入“我有一只铅笔,但是仓库里有353628支”,读出刚才的文件内容,将1变为一,以此类推写入新的文件,新文件内容应为“我有一只铅笔,但是仓库里有三五三六二八支”
#include<cstdio>
#include<cstring>
using namespace std;
char change(char a){
}
int main(){
FILE *fp=NULL,*fq;
int n=0;
char buff[200],temp[200];
fp=fopen("c:/tmp/test2.txt","w+");
fq=fopen("E:/tmp/text5.txt","w");
fprintf(fp,"我有1支铅笔,但是仓库里有353628支");
fclose(fp);//本来没有这个文件,所以先创建一下
fp=fopen("c:/tmp/test2.txt","r");
fgets(buff,100,fp);
int len=strlen(buff);
for(int i=0;i<len;i++){
//fgets(buff,2,fp);
if(buff[i]>='1'&&buff[i]<='9'){
switch(buff[i]){
case '1': fputs("一",fq); break;
case '2': fputs("二",fq); break;
case '3': fputs("三",fq); break;
case '4': fputs("四",fq); break;
case '5': fputs("五",fq); break;
case '6': fputs("六",fq); break;
case '7': fputs("七",fq); break;
case '8': fputs("八",fq); break;
case '9': fputs("九",fq); break;
case '0': fputs("零",fq); break;
}
}
else
fprintf(fq,"%c",buff[i]);
}
fclose(fq) ;
}