0

編集 - 空白行はありません。EDIT 2 - 私の悪い、それは私がずっと間違っていたようです。csv ファイルにはそうではないことが示されていますが、どこかに空白行があります。それは今働いています。さて、ここに(短い)プログラム全体があります:

#include <iostream>
#include <cctype>
#include <string>
#include <fstream>
using namespace std;

int main(){
    char a;
    string stringmanip;

    fstream myfile("readthisfile.csv");
    if (myfile.is_open()){
        while ( myfile.good() ){
            getline(myfile,stringmanip);
            a=stringmanip[0];
        }
        myfile.close();
    }
    else cout<< "Unable to open file";

    return 0;
}

私には意味がありません。stringmanip をコピーしたり、stringmanip を計算したり、stringmanip で .substr を使用したりできます。通常の文字列を定義すると、[] 操作を問題なく使用できます。私も .at を試しましたが、それは別のエラーにつながるだけです。(範囲外)。

どんな助けでも大歓迎です。申し訳ありませんが、私はあなたが言うことができると確信しているので、私はとても初心者です。

ありがとう、ベン

4

1 に答える 1

4

readthisfile.csv のファイルの末尾 (またはファイル内の任意の場所) に空の行がある場合、空の文字列が返されます。空の文字列の 0 番目の文字を逆参照することはできません。からまでstring::operator[]のインデックスのみを受け入れます。空の文字列がある場合、 を呼び出すと、未定義の動作が発生します。0string::length() - 1string::operator[]

于 2012-04-10T23:17:23.343 に答える