c语言中词法分析怎么识别注释,C语言中的词法分析-如何在检测多行注释时使星号被读取并输出?...
我正在研究詞法分析程序,檢測到一行注釋時一切正常。 這是我的單行注釋檢測代碼。//Single Comment
if ((Current_Character == '/') && (fgetc(File_Input) == '/')){
printf("%c", Current_Character);
do{
printf ("%c", Current_Character);
Current_Character = fgetc (File_Input);
}while(Current_Character != '\n');
printf("\b \t | COMMENT\n", Current_Character);
i = -1;
Lexeme_Count++;
Comment_Count++;
}
但是,當我嘗試檢測多行注釋時,出現了邏輯錯誤,無法檢測到開頭的星號。 這是我的多行注釋檢測代碼://Multi-Line Comment
if((Current_Character == '/') && (fgetc(File_Input) == '*')){
printf ("%c", fgetc(File_Input));
do{
printf ("%c", Current_Character);
Current_Character = fgetc(File_Input);
}while(Current_Character != '/');
printf("\b | COMMENT\n", Current_Character);
i = -1;
Lexeme_Count++;
Comment_Count++;
}
當前字符用于多行注釋的第一個字符,即反斜杠,第二個字符是(fgetc(File_Input) (從文件中獲取下一個最新字符)),用于打開問號。
這是我輸入的文件的內容:#include
{
int a[3],t1,t2;
t1=2; a[0]=1; a[1]=2; a[t1]=3;
t2=
-
(a[2]+t1*6)/(a[2]
-
t1);
if t2>5 then
print(t2);
else {
int t3;
t3=99;
t2=
-
25;
print(
-
t1+t2*t3); // this is a comment on 2 lines
} endif /* THIS IS A MUTLI-LINE COMMENT ON 2 LINES
*/ }
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的c语言中词法分析怎么识别注释,C语言中的词法分析-如何在检测多行注释时使星号被读取并输出?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于c语言的符号常量以下叙述中正确的是,
- 下一篇: 计算机图形学学习报告,计算机图形学学习报