1. 程式人生 > >第十八週專案實踐3.1(3)程式設計處理c程式碼

第十八週專案實踐3.1(3)程式設計處理c程式碼

/******************************************************
Copyright (c) 2016,煙臺大學計算機學院
All rights reserved.
作者:張明明
完成日期:2016年12月31日
版本號:v1.0
功能描述:使程式中的所有左花括號“{”和右花括號“}”都單獨
佔一行,新程式儲存到另一個.c檔案中,並在螢幕上顯示處理
過的程式,顯示時加上行號。
輸入引數:*fp-程式
           *new-讀入未更改的程式
           *new1-寫入更改後的程式
返回引數:無
其他說明:無
*******************************************************/

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char c1,c2,new[1000];
    FILE* fp;
    FILE* fnew;
    FILE* fnew1;
    int n=1;
    fp=fopen("m.c","r");
    if(fp==NULL)
        printf("不能開啟檔案\n");
    else
    {
        printf("開啟檔案成功\n");
        fnew=fopen("new.c","w");
        if(fnew==NULL)
            printf("第二個未檔案開啟成功\n");
        else
        {
            printf("第二個成功開啟\n");
            while(!feof(fp))
            {
                c2=fgetc(fp);
                if((c2=='{'||c2=='}')&&c1!='\n')
                    fputc('\n',fnew);
                if((c1=='{'||c1=='}')&&c2!='\n')
                    fputc('\n',fnew);
                fputc(c2,fnew);
                c1=c2;
            }
        }
        fclose(fp);
        fclose(fnew);
    }
    fnew1=fopen("new.c","r");
     if(fnew1==NULL)
        printf("不能開啟檔案\n");
    else
    {
        printf("開啟檔案成功\n");
        while(!feof(fnew1))
        {
           fgets(new,999,fnew1);
        printf("%d\t%s\n",n,new);
        n++;
        }
    }
    fclose(fnew1);
    return 0;
}