-1

テキストファイル内の引用符または単一行または複数行のコメント内のテキストを表示する 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;
}

edit : 無限ループに陥ります。どうやって。問題は解決しません。Dev C++ エディターを使用しています。

4

1 に答える 1

0

無限ループにはループが必要です。コードに 2 つのループがあります。最初のものwhile(!fin.eof()) {は、ファイルが最終的に使い果たされるため、無限ループを引き起こしません。

したがって、内側のループと goto ステートメントが残ります。ロジックにバグがあると思います。アスタリスクの後にスラッシュがない場合、ループは決して終了しません。

于 2012-04-20T12:40:12.280 に答える