[解決済み] 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;
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++でランダムな2倍数を生成する
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み】Enterキーを押して続行する
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み】'std::cout'への未定義の参照