我正在编写一个C ++程序,用于在文本文件中显示引号内的任何文本或单行或多行注释。问题是我无法让它正常运行。这是我的计划:
#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include<conio.h>
using namespace std;
int main () {
char ch, name[20];
int count=0;
fstream fin;
cin>>name;
fin.open(file_name, ios::in);
while(!fin.eof()) {
fin.get(ch);
if(ch=='/') {
fin.get(ch);
if(ch=='*') {
a:
fin.get(ch);
while(ch!='*') {
cout<<ch;
fin.get(ch);
}
fin.get(ch);
if(ch!='/') goto a;
}
if(ch=='/') {
fin.get(ch);
while(ch!='\n') {
cout<<ch;
fin.get(ch);
}
}
}
}
getch();
return 0;
}
编辑:它被无限循环捕获。如何。 问题依然存在。我正在使用Dev C ++编辑器。
答案 0 :(得分:0)
无限循环需要循环。您的代码中有两个循环。第一个while(!fin.eof()) {
不会导致无限循环,因为文件最终会被耗尽。
所以我们继续使用内部循环和goto语句。 我认为逻辑中存在一个错误 - 如果在星号后没有斜线,那么循环将永远不会结束。