0

「Boss1 Dave Jim Boss3 Coleen Boss 7 Harris Todd Elaine」の行に沿って何かを含むファイルを読み取るプログラムがあり、入力をボスのリストと名前のリストに分離しようとしている場合、チェックします各文字列が入力されましたが、その人が上司かどうかはどうすればわかりますか? まず、次のようなものを設定します。

void read(std::istream& is, Bosses<std::string>& bossList, Employees<std::string> empList){

    std::string name;
    while(!is.eof()){
        is >> name;
        }
    }

ただし、while ループをチェックインする必要がありますが、name=="Boss_"これを設定する方法を知るのに十分なほど文字列を理解していません。

4

1 に答える 1

0

文字列は空白で区切られているため、挿入演算子を使用して名前の文字列を解析できます。挿入演算子は空白をスキップします (デフォルト)

void read(std::istream& is, Bosses<std::string>& bossList, Employees<std::string> empList) {
    std::string temp;
    std::vector<std::string> all_names;
    //the insertion operator reads the string and bypasses all whitespace by default
    while (is >> temp) {

        //find bosses by using `std::string
        if (temp.find("Boss") != std::string::npos) {
            boosList.push_back(temp);//you didn't state what container `Bosses` uses but, `push_back is valid for `lists`, `vectors` and `deques`
        }
        else {
            empList.push_back(temp);//you didn't state what container `Employees` uses but, `push_back is valid for `lists`, `vectors` and `deques`
        }
    }
}
于 2013-10-29T22:54:02.000 に答える