0

ファイルからFlightクラスにフライト スケジュールを読み込もうとしています。

tutorialspointMicrosoft Visual Studio 2015 を使用しているときに問題が発生しました。C ++ オンライン コンパイラで同じコードを試したところ、すべて正常に動作しました。

テキスト ファイルのデータ例を次に示します。

LAS VEGAS; 21:15; AA223; A3;
DALLAS; 21:00; BA036; A3;
LONDON; 20:30; AA220; B4;
MEXICO; 19:00; VI303; B4;
LONDON; 17:45; BA087; B4;

ここで私が受け取るエラーメッセージ:

sf.exe の 0x75F25B68 で未処理の例外: Microsoft C++ 例外: メモリ位置 0x00C5EE9C の std::out_of_range。

そして、ここで問題が明らかに発生するストリームエクストラクタ

istream &operator>>(istream &is, Flight &f) {
    std::string singleLine;
    is >> singleLine;
    std::string s0, s1, s2, s3;
    size_t loc = singleLine.find(';');
    s0 = singleLine.substr(0, loc);
    singleLine.erase(0, loc + 1);
    loc = singleLine.find(';');
    s1 = singleLine.substr(1, loc - 1);
    singleLine.erase(0, loc + 1);
    loc = singleLine.find(';');
    s2 = singleLine.substr(1, loc - 1);
    singleLine.erase(0, loc + 1);
    s3 = singleLine.substr(1, 2);


    f.set_lightNo(s0);
    f.set_destination(s1);
    f.set_departure(s2);
    f.set_gateNo(s3);
    return is;
}
4

1 に答える 1