web-dev-qa-db-ja.com

ファイルc ++から文字列を読み取る

練習のためだけに父のレストランの課金システムを作ろうとしています。そのため、文字列全体を一度に読み取ることができないという問題に直面しています。たとえば、txtファイルにChicken burgerが含まれている場合、コンパイラはそれらを読み取りますが、2つの単語に分割します。私は次のコードを使用していますが、ファイルはすでに存在しています。

std::string item_name;
std::ifstream nameFileout;

nameFileout.open("name2.txt");
while (nameFileout >> item_name)
{
    std::cout << item_name;
}
nameFileout.close();
5
user3139551

行全体を読むには、

std::getline(nameFileout, item_name)

のではなく

nameFileout >> item_name

nameFileoutは名前ではなく、出力ではなく入力用であるため、名前を変更することを検討してください。

8
Mike Seymour

行ごとに読み取り、内部で行を処理します。

string item_name;
ifstream nameFileout;
nameFileout.open("name2.txt");
string line;
while(std::getline(nameFileout, line))
{
    std::cout << "line:" << line << std::endl;
    // TODO: assign item_name based on line (or if the entire line is 
    // the item name, replace line with item_name in the code above)
}
3
utnapistim