對於注釋轉換首先給出我的測試圖:
由圖可以看出將左邊的c語言注釋轉換為右邊c++注釋就是注釋轉換
首先說明一下轉換思想方法:
1.建立兩個檔案input.c和output.c,input.c裡面用來讀取c語言的注釋,output.c裡面儲存轉換成為c++的注釋,中間的轉換過程就是**完成,當然檔案名字和作用自己規定
2.轉換的實際過程就是從存放c語言注釋的檔案中讀取資料這裡是乙個字元乙個字元讀取,然後通過相關的函式將其轉換為c++注釋後的**再寫入儲存c++注釋的檔案中
當然這裡會用fgetc和fputc函式,其實這個專案就是練習檔案的讀寫能力
在這裡封裝了三個函式:
1.void donulstate(file *pfin, file *pfout, enum state *s);//非c++,c狀態的函式宣告
這個是不存在注釋的**語句處理函式,即剛開始進入檔案讀寫的函式
2.void docstate(file *pfin, file *pfout, enum state *s);//c狀態進行操作
這個是發現是c語言注釋的語句,則用這個函式將其改造為c++注釋
3.void docppstate(file *pfin, file *pfout, enum state *s);//c++狀態進行操作
這個是發現是c語言注釋的語句,則用這個函式將其改造讀寫到儲存c++注釋額檔案中
其核心的思想部分是這個樣子,我用圖來解釋:
接下來給出具體的**
首先給出commentconver.h標頭檔案
#define _crt_secure_no_warnings 1
#ifndef __comment_conver_h__
#define __comment_conver_h__
#include#includeenum state
;void donulstate(file *pfin, file *pfout, enum state *s);//非c++,c,結束狀態的函式宣告
void docstate(file *pfin, file *pfout, enum state *s);//c狀態進行操作
void docppstate(file *pfin, file *pfout, enum state *s);//c++狀態進行操作
#endif
接下來給出commentconver.c具體狀態函式的實現**
#define _crt_secure_no_warnings 1
#include"commentconver.h"
void donulstate(file *pfin, file *pfout, enum state *s)//開始無狀態
break;
case '*'://第二個讀取到*為c的注釋
break;
default:// 其他非注釋情況直接讀取
break;
}} break;
case eof://直接檔案讀取結束
break;
default://剛開始未發現注釋相關符號
break; }}
void docstate(file *pfin, file *pfout, enum state *s)//c注釋狀態
break;
case '*'://連續注釋問題如:/***/
break;
default://其它非注釋情況}}
break;
case '\n'://多行注釋問題
break;
default://結尾直接是其他非注釋情況
break; }}
void docppstate(file *pfin, file *pfout, enum state *s)//c++注釋狀態
break;
case eof://檔案讀取結束
break;
default://其他非注釋情況
fputc(first, pfout);
break;
}}
最後給出test.c
#define _crt_secure_no_warnings 1
#include"commentconver.h"
void commentconver(file *pfin, file *pfout) }}
void test()
file *pfout = fopen("output.c", "w");//往檔案裡面寫東西
if (pfout == null)
//commentconver(pfin, pfout);//呼叫轉換函式
fclose(pfin);
fclose(pfout);
}int main()
由於開頭給出的就是我的測試結果所以這裡就不放測試結果了 注釋轉換 C注釋轉換為標準C 注釋
注釋轉換 c 注釋轉換為標準c語言注釋 直接上 include include include typedef enum state state typedef enum tag tag pragma warning disable 4996 state annotationconvert file...
注釋轉換 (C語言注釋轉換為c 注釋)
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 注釋問題 ...
C注釋轉換為C 注釋
我們將c注釋轉換為c 的注釋思路如下圖 此次我們通過將需要轉換的c注釋內容存於input.c檔案中,轉換後的內容存於output.c檔案中。input.c檔案 1.一般情況 int num 0 int i 0 2.換行問題 int i 0 int j 0 int i 0 int j 0 3.匹配問題...