注釋轉換C 注釋》

2021-07-12 00:14:02 字數 3500 閱讀 3808

@ 注意: **中所用到的fopen,fwrite,fread等檔案操作函式在通訊錄檔案流部落格中做了介

紹:

@ ungetc 函式是將從檔案中讀取的乙個字元還回到緩衝區,即檔案中去;

@ 分析思路圖

@分析思路圖

# 自定義標頭檔案部分

#ifndef __comment_convert_h__

#define __comment_convert_h__

#include#include#define inputfilename "input.c"

#define outputfilename "output.c"

typedef enum convert_start//列舉表示操作選項;

statetype;

void commentconvert();

void convertwork(file *read,file *write);//注釋轉換操作選項函式;

void docstate(file *read,file *write);//c 轉換為 cpp函式;

void donullstate(file *read,file *write);//普通語句空轉換函式;

void docppstate(file *read,file *write);//cpp 轉換 c 函式;

#endif //__comment_convert_h__

# 函式功能實現部分:

#define _crt_secure_no_warnings 1

#include"commentconvert.h"

statetype state;

void donullstate(file *read,file *write)//無轉換操作函式;

else if(second == '/')

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

break;

case eof:

fputc(first,write);

state = end_start ;//注釋結束,狀態調整;

break;

default://開始就為普通內容,直接寫入;

fputc(first,write);

break; }}

void docstate(file *read,file *write)//c轉換為cpp;

if(third == '\n')

}else

break;

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

fputc(first,write);

fputc('/',write);

fputc('/',write);

break;

case eof:

fputc(first,write);

state = end_start ;

break;

default:

fputc(first,write);

break;

}} void docppstate(file *read,file *write)//cpp轉換為c;

}void convertwork(file *read,file *write)//函式操作選項; }}

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

//寫入新建立的"output.c"檔案;

pwrite = fopen(outputfilename, "w");

if(pwrite == null)

//呼叫操作選項函式;

//關閉已經開啟的檔案;

convertwork(pread,pwrite);

fclose(pread );

fclose (pwrite );

}

# 主函式部分:

#include"commentconvert.h"

void test()

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++注釋問題

// /**************/

簡單的注釋轉換功能, 功能比較單一,有時間我會繼續完善!

ps: 愛拼才會贏!

thanks!

注釋轉換 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...