這個程式的目的是:把c注釋全部轉換為c++注釋
程式有以下幾個狀態:
1、無狀態:**的正文部分2、c狀態:注釋方式為c注釋3、c++狀態:注釋方式為c++注釋4、end:結束狀態這幾種狀態的關係
首先我們要開啟input.c檔案,對這個檔案內部的檔案進行讀取,然後處理,否則直接提示使用者有錯誤。 接下來,我們還要開啟output.c檔案,對處理以後的**進行寫入。
轉換機制:先建立乙個狀態機,在讀取到檔案時將初始狀態先設為null_state,然後通過fputc函式
從檔案中按乙個字元乙個字元的方式來讀取,當讀到'/*'時,說明接下來讀到的是c_state狀態,然後將狀態機的
狀態改為c_state狀態,進入c狀態後,接下來就是要判斷是否讀到'*/',如果讀到就將狀態機設定為
null_state狀態。當然在進去c狀態後還要考慮其他很多情況,具體在**中來看。當讀到'//'時,則進入
cpp_state狀態,這時將狀態機設定為cpp_state狀態,cpp注釋是按照行來注釋的,所以判斷cpp狀態結束
的標誌自然就是'\n'了。
input.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;/****x
// 4.多行注釋問題
////int i=0;
//int j = 0;
//int k = 0;
//int k = 0;
// 5.連續注釋問題
////
// 6.連續的**/問題
//*
// 7.c++注釋問題
// /**************/
注釋轉換程式
**實現
commentconver.h
#ifndef __comment_convert_h__
#define __comment_convert_h__
#define _crt_secure_no_warnings 0
#include#includeenum state
;void donulstate(file* pfin, file* pfout, enum state* ps);
void docstate(file* pfin, file* pfout, enum state* ps);
void docppstate(file* pfin, file* pfout, enum state* ps);
void commentconvert(file* pfin, file* pfout);
#endif //__comment_convert_h__
commentconver.c
#include "commentconvert.h"
void donulstate(file* pfin, file* pfout, enum state* ps)
break;
case '/':
break;
default:
break;
}} break;
case eof:
fputc(first, pfout);
*ps = end_state;
break;
default:
fputc(first, pfout);
break; }}
void docstate(file* pfin, file* pfout, enum state* ps)
else
*ps = nul_state;
}break;
case '*':
break;
default:
fputc(first, pfout);
fputc(second, pfout);
break;
}} break;
default:
fputc(first, pfout);
break; }}
void docppstate(file* pfin, file* pfout, enum state* ps)
break;
case eof:
fputc(first, pfout);
*ps = end_state;
break;
default:
fputc(first, pfout);
break; }}
void commentconvert(file* pfin, file* pfout)
}}
test.c
#include"commentconvert.h"
void test()
file* pfout = fopen("output.c", "w");
if (null == pfout)
//注釋轉換
commentconvert(pfin, pfout);
fclose(pfin);
pfin = null;
fclose(pfout);
pfout = null;
}int mian()
注釋轉換(C注釋轉換為c 注釋)
對於注釋轉換首先給出我的測試圖 由圖可以看出將左邊的c語言注釋轉換為右邊c 注釋就是注釋轉換 首先說明一下轉換思想方法 1.建立兩個檔案input.c和output.c,input.c裡面用來讀取c語言的注釋,output.c裡面儲存轉換成為c 的注釋,中間的轉換過程就是 完成,當然檔案名字和作用自...
注釋轉換C 注釋》
注意 中所用到的fopen,fwrite,fread等檔案操作函式在通訊錄檔案流部落格中做了介 紹 ungetc 函式是將從檔案中讀取的乙個字元還回到緩衝區,即檔案中去 分析思路圖 分析思路圖 自定義標頭檔案部分 ifndef comment convert h define comment con...
注釋轉換 C注釋轉換為標準C 注釋
注釋轉換 c 注釋轉換為標準c語言注釋 直接上 include include include typedef enum state state typedef enum tag tag pragma warning disable 4996 state annotationconvert file...