題目要求:
要將全部的c語言風格的注釋轉換為c++風格的注釋,如下圖所示,需要將input.c檔案經過注釋轉換程式轉換為output.c檔案所示
分析:
從input.c檔案可以看書,每行開頭遇見的內容有三種 // , /* ,其他**。因此,這裡就要分情況討論。可以定義三個函式,分別處理null,c,c++對應狀態。將 // 定義為cpp_state, /* 定義為 c_state狀態,其他情況定義為null_state。下圖給出了三者的轉換關係:
應當注意的是:在c_state狀態轉換下,遇到*/後還應該考慮後邊是否還有其他**,以及在遇到 */之前會出現這種情況:*****/,還有遇到多行注釋的情況(應該在每行開始加上 //)
具體**如下:
"commentcovert.h"
#ifndef _comment_convert_h__
#define _comment_convert_h__
#include#include#define inputname "input.c"
#define outputname "ouput.c"
enum state
;void commentconvert(file *pfread,file *pfwrite);
void do_nul_state(file *pfread,file *pfwrite);
void do_c_state(file *pfread,file *pfwrite);
void do_cpp_state(file *pfread,file *pfwrite);
#endif // _comment_convert_h__
"commentconert.c"
#define _crt_secure_no_warnings
#include"commentconvert.h"
enum state state = nul_state;
void do_nul_state(file *pfread,file *pfwrite) //遇到null狀態下的處理
else if(second == '/') //null狀態下遇到//時直接輸出
else //null狀態下遇到/後又遇到其他字元將其直接輸出
}break;
case eof:
state = end_state;
default :
fputc(first,pfwrite);
break; }}
void do_cpp_state(file *pfread,file *pfwrite) //c++狀態下的處理
}void do_c_state(file *pfread,file *pfwrite) //c狀態下的處理
else
state = nul_state;
//如果'*/'之後不是'\n',說明在second之後還有字元,因此在此處輸入乙個換行,並將
//讀到的third字元返回到pfread中去,並將狀態置為 nul_state
//如果是'\n',說明c語言注釋已完,下乙個字元有可是『/』也有可能是其他字元,因此
//將狀態回到 nul_state
}else if(second == '*') //連續的**/問題
else
}break;
case '\n':
fputc(first,pfwrite);
fputc('/',pfwrite);
fputc('/',pfwrite);
break;
case eof:
state = end_state;
break;
default:
fputc(first,pfwrite);
break; }}
void commentconvert(file *pfread,file *pfwrite)
}}
"test.c"
#define _crt_secure_no_warnings
#include"commentconvert.h"
int main()
pfwrite = fopen(outputname,"w");
if(pfwrite == null)
commentconvert(pfread,pfwrite);
printf("轉換結束\n");
system("pause");
return 0;
}
C語言專案 注釋轉換
define crt secure no warnings 1 include include include typedef enum convertstate convertstate typedef enum state state convertstate convert file fin,...
c語言小專案 注釋轉換
這篇部落格,我將整理關於注釋轉換的知識,首先,得知道,注釋轉換包括,c語言注釋轉 換成c 注釋,和c 注釋轉換成c語言注釋。c語言注釋的風格 這是c語言注釋 c 語言注釋風格 這是c 注釋風格 下面,我主要分析將所有的注釋轉換成c 注釋,即就是 c語言注釋轉 換成c 注釋。這樣的轉換會存在以下多種情...
C語言小專案 注釋轉換
這裡所說的注釋轉換是指將c風格的注釋轉換成c 風格的注釋。那麼我們如何來實現這個目的呢?首先我們得有乙個名為 input.c 的檔案 裡面寫著一段c風格的注釋和一些 而我們轉換後的注釋及 應該儲存在乙個名為 output.c 的檔案裡。要將 input.c中的內容轉換,我們就得將該檔案中的內容乙個乙...