1. ホーム
  2. c++

[解決済み] C++でファイル入力を使ってgetline()を使用する

2022-02-11 06:14:05

質問

C++で簡単な初心者の作業をしようとしています。次の行を含むテキストファイルを持っています。 ジョン・スミス 31"。これだけです。このデータをifstream変数を使って読み込みたいのです。しかし、名前 "John Smith" を一つの文字列変数に、そして数字 "31" を別の int 変数に読み込みたいのですが、どうすればよいでしょうか?

以下のように、getline関数を使用してみました。

ifstream inFile;
string name;
int age;

inFile.open("file.txt");

getline(inFile, name); 
inFile >> age; 

cout << name << endl;
cout << age << endl;  

inFile.close();    

これの問題は、行全体を出力してしまうことです "John Smith 31"。getline関数が名前を取得した後に停止して、数字を取得するためにquot;restart"するように指示する方法はありますか?入力ファイルを操作することなく、ですか?

どのように解決するのですか?

getline は、その名の通り、行全体を読むか、少なくとも指定できるデリミタまで読みます。

というわけで、答えは「ノー」です。 getline は、あなたのニーズと一致しません。

でも、こんなこともできるんです。

inFile >> first_name >> last_name >> age;
name = first_name + " " + last_name;