2017上学年课程设计2

    xiaoxiao2021-04-13  33

    //读入一个C程序,使程序中的所有左花括号“{”和右花括号“}”都单独占一行,新程序保存到另一个.c文件中,并在屏幕上显示处理过的程序,显示时加上行号。 #include <stdio.h> #include<string.h> #include<stdlib.h> void formatPrograme(char *sourcefile, char *targetfile); void outprogram(char *filename); int main( ) { formatPrograme("source.c", "target.c"); printf("处理后的程序是:\n"); outprogram("target.c"); return 0; } void formatPrograme(char *sourcefile, char *targetfile) { char ch1, ch2; //将文件中的数据读入到字符数组中 FILE *fpin=fopen(sourcefile,"r"); //以输入的方式打开文件 if(fpin==NULL) //测试是否成功打开 { printf("source code read error!\n"); exit(1); } FILE *fpout=fopen(targetfile,"w"); //以输入的方式打开文件 if(fpout==NULL) //测试是否成功打开 { printf("source code write error!\n"); exit(1); } ch1='\0'; while(!feof(fpin)) { ch2=fgetc(fpin); //读到了花括号,且前一个符号不是换行,应该加入一个换行 if((ch2=='{'||ch2=='}')&&(ch1!='\n')) fputc('\n', fpout); else //当前读到的不是换行,但前一个是花括号,此时也该加 if((ch1=='{'||ch1=='}')&&(ch2!='\n')) fputc('\n', fpout); fputc(ch2, fpout); //输出当前读入的符号 ch1=ch2; } fclose(fpout); fclose(fpin); } void outprogram(char *filename) { //建立一个字符数组存放文件的数据 char line[256]; //行数记录 int n=1; //将文件中的数据读入到字符数组中 FILE *fp=fopen(filename,"r"); //以输入的方式打开文件 if(fp==NULL) //测试是否成功打开 { printf("source code read error!\n"); exit(1); } while(!feof(fp)) { fgets(line,256, fp); //读入一行 printf("%d %s\n", n, line); n++; } fclose(fp); return; }
    转载请注明原文地址: https://ju.6miu.com/read-668363.html

    最新回复(0)