文件处理:在评论/引号中显示内容

时间:2012-04-18 02:42:07

标签: c++ file-handling

我正在编写一个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 ++编辑器。

1 个答案:

答案 0 :(得分:0)

无限循环需要循环。您的代码中有两个循环。第一个while(!fin.eof()) {不会导致无限循环,因为文件最终会被耗尽。

所以我们继续使用内部循环和goto语句。 我认为逻辑中存在一个错误 - 如果在星号后没有斜线,那么循环将永远不会结束。