2

私は今、完全にアイデアがありません。基本的に、テキスト ファイルの行の一部を読みたいのですが、このコードは機能せず、理由がわかりません。

        char temp_char  = '\0';
        char _char = '\0';
        while(1)
        {
            _places.get(temp_char);
            if(temp_char == '\t')
                break;

            _char += temp_char;

            cout << _char;
        }

基本的には、ファイルの先頭からタブ文字に接触するまで読み込むことになっています。残念ながら、それは止まることはなく、_char は無意味な大量のランダムな文字として出てきます。

TXT ファイルを調べたところ、正しいエンコーディングであり、タブはファイル内の通常のタブ文字ですが、何らかの理由で get または >> を使用してストリームから読み取ることができません。

私は 1 時間実験を続け、助けを求めて数多くの Web サイトを調べましたが、どこにも行き着きませんでした...これがすべて私にストレスを与えています...

編集:これが問題でない場合は、残りのプログラムコードも提供できますが、そうあるべきです。:/

ファイルが開かれる場所は次のとおりです。

                ifstream _places;
                _places.open("ECC.txt");
                if (_places.fail())
                {
                    cout << "Could not load text file, please make sure ECC.txt is in the same folder.";
                    _getch();
                    exit(1);
                }
4

1 に答える 1

2

まず、_char は std::string、char[]、または char* ですか?

第二に、私はどちらかを使用したでしょう

temp_char = _places.get()

また

std::string temp;
getline(_places,temp)
for (unsigned int i=0; i<temp.size(), ++i)
    if (temp[i] == '\t')
        break;
    _char += temp[i] // assuming, and REALLY HOPING _char is a std::string 

int を返す可能性がある場合は、ifstream の get() メソッドに注意してください。

于 2012-05-15T21:06:32.277 に答える