2012-04-18 4 views
-1

私は、引用符で囲んだテキスト、または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; 
} 

編集:それは無限ループに巻き込まれます。 idk how。 問題が解決しない場合。私はDev C++エディタを使用しています。

+0

'name'を' char'の生の配列として宣言するのではなく、 'string'を宣言してオーバーフローを回避してください。 – Attila

+4

あなたはそれを得ることができない正しく走る?どの入力が失敗するのですか?その入力で何が生成されますか? – Attila

+0

そのラベル/ gotoはループで簡単に置き換えることができます。これははるかに優れています。 – chris

答えて

0

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

私たちは内部ループとgotoステートメントのままです。 私はロジックにバグがあると思います。アステリックの後にスラッシュがない場合、ループは決して終わらないでしょう。

+0

お返事ありがとうございます。私はそれを何度も見てきました。アスタリスクの後にスラッシュがあっても、無限のスラッシュが印刷されます。 – qAp

関連する問題