通過switch語句構造乙個狀態機,通過在不同狀態間的轉換完成注釋的轉化換
// 1.一般情況
int num = 0;
/* 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++注釋問題
// /**************/
#ifndef __comentconvert_h__
#define __comentconvert_h__
#include
#include
#pragma warning(disable:4996)
enum state ;
void donulcovert(file* input, file* output, enum state *ps);
void doculcovert(file* input, file* output, enum state *ps);
void docppcovert(file* input, file* output, enum state *ps);
#endif
#include "comentcovert.h"
#define _crt_secure_no_warnings 1
void test()
pfout = fopen("output.c", "w");
if (pfout == null)
comentcovert(pfin, pfout); //注釋轉換函式
fclose(pfin);
pfin = null;
fclose(pfout);
pfout = null;
}int main()
#include "comentcovert.h"
#define _crt_secure_no_warnings 1
void donulcovert(file* input, file* output, enum state *ps) //無狀態轉換函式
break;
case
'*':
break;}}
break;
case
eof :
break;
default:
break;
}}void doccovert(file* input, file* output, enum state *ps) //c狀態轉換函式
break;
case
'*':
break;
default:
break;}}
break;
case
'\n':
break;
default:
break;}}
void docppcovert(file* input, file* output, enum state *ps) //c++狀態轉換函式
break;
default:
break;
}} void comentcovert(file* input, file* output)}}
只有在狀態切換的時候使用了迴圈,其他都是乙個狀態列印一 注釋轉換(C注釋轉換為c 注釋)
對於注釋轉換首先給出我的測試圖 由圖可以看出將左邊的c語言注釋轉換為右邊c 注釋就是注釋轉換 首先說明一下轉換思想方法 1.建立兩個檔案input.c和output.c,input.c裡面用來讀取c語言的注釋,output.c裡面儲存轉換成為c 的注釋,中間的轉換過程就是 完成,當然檔案名字和作用自...
注釋轉換 c注釋 c 注釋
本專案基於乙個狀態機的思想,每次處理完成之後通過狀態的裝換繼續處理後邊的內容。另外,利用各類的檔案操作函式,實現將將c風格的注釋裝換成c 風格的注釋的乙個簡單功能。大概如下圖 什麼是狀態機?在本專案中,會用到四種狀態,既空狀態 正常 區 c注釋狀態 c風格注釋區 c 注釋狀態 c 風格注釋區 檔案結...
注釋轉換C 注釋》
注意 中所用到的fopen,fwrite,fread等檔案操作函式在通訊錄檔案流部落格中做了介 紹 ungetc 函式是將從檔案中讀取的乙個字元還回到緩衝區,即檔案中去 分析思路圖 分析思路圖 自定義標頭檔案部分 ifndef comment convert h define comment con...