C與C 注釋轉換

2021-07-16 14:21:45 字數 2727 閱讀 7047

commentconvert.h內容

#ifndef __comment_convert_h__  

#define __comment_convert_h__   

#include

#include

enum state//列舉操作選項  

;  void commentconvert();  

void doconvertwork(file *pfin,file *pfout,enum state *psta);//注釋轉換操作  

void docstate(file *pfin,file *pfout,enum state *psta);//c 模式轉換為 cpp模式  

void donullstate(file *pfin,file *pfout,enum state *psta);//普通語句轉換模式 

void docppstate(file *pfin,file *pfout,enum state *psta);//cpp 模式轉換 c 模式  

#endif //__comment_convert_h__  

commentconvert.c內容

#define _crt_secure_no_warnings 1  

#include"commentconvert.h"  

void donullstate(file *pfin,file *pfout,enum state *psta) 

else if(second == '/')  

else //普通語句就直接寫入;  

break;  

case eof:  

fputc(first,pfout);  

*psta = end_state ;  

break;  

default://普通內容,直接寫入  

fputc(first,pfout);  

break;  

}  }    

void docstate(file *pfin,file *pfout,enum state *psta)//c模式轉換為cpp模式 

if(third == '\n')  

}  else  

break;  

case '\n'://如果是換行,那就是連續注釋,就將下一行開頭加入cpp注釋(//) 

fputc(first,pfout);  

fputc('/',pfout);  

fputc('/',pfout);  

break;  

case eof:  

fputc(first,pfout);  

*psta = end_state ;  

break;  

default:  

fputc(first,pfout);  

break;  

}  }     

void docppstatete(file *pfin,file *pfout,enum state *psta)//cpp模式轉換為c模式  

}  void doconvertwork(file *pfin,file *pfout)//函式操作選項

}  }   

void commentconvert()//讀寫檔案函式;  

pfout= fopen("output.c", "w");  //寫入新建立的"output.c"檔案; 

if(pfout== null)  

doconvertwork(pfin,pfout);  

fclose(pfin );  //關閉已經開啟的檔案;  

fclose (pfout);  

}  test.c內容

#include"commentconvert.h"  

int main()  

input.c內容

// 1.一般情況

/* int i = 0; */

// 2.換行問題

/* int i = 0; */int j = 0;

/* int i = 0; */

int j = 0;

// 3.匹配問題

/*int i = 0;/****xx*/

// 4.多行注釋問題

/*int i=0;

int j = 0;

int k = 0;

*/int k = 0;

// 5.連續注釋問題

/**//**/

// 6.連續的**/問題

/***/

// 7.c++注釋問題

// /**************/

output.c內容(最終執行結果)

// 1.一般情況

// int i = 0; 

// 2.換行問題

// int i = 0; 

int j = 0;

// int i = 0; 

int j = 0;

// 3.匹配問題

//int i = 0;/****xx

// 4.多行注釋問題

////int i=0;

//int j = 0;

//int k = 0;

//int k = 0;

// 5.連續注釋問題

////

// 6.連續的**/問題

//*// 7.c++注釋問題

// /**************/

注釋轉換 c注釋 c 注釋

本專案基於乙個狀態機的思想,每次處理完成之後通過狀態的裝換繼續處理後邊的內容。另外,利用各類的檔案操作函式,實現將將c風格的注釋裝換成c 風格的注釋的乙個簡單功能。大概如下圖 什麼是狀態機?在本專案中,會用到四種狀態,既空狀態 正常 區 c注釋狀態 c風格注釋區 c 注釋狀態 c 風格注釋區 檔案結...

注釋轉換(C注釋轉換為c 注釋)

對於注釋轉換首先給出我的測試圖 由圖可以看出將左邊的c語言注釋轉換為右邊c 注釋就是注釋轉換 首先說明一下轉換思想方法 1.建立兩個檔案input.c和output.c,input.c裡面用來讀取c語言的注釋,output.c裡面儲存轉換成為c 的注釋,中間的轉換過程就是 完成,當然檔案名字和作用自...

注釋轉換 C注釋轉換為標準C 注釋

注釋轉換 c 注釋轉換為標準c語言注釋 直接上 include include include typedef enum state state typedef enum tag tag pragma warning disable 4996 state annotationconvert file...