0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

cinで1文字目が消えてる・・・。(備忘録)

Last updated at Posted at 2024-05-26

本ページの構成

  • やりたいこと
  • 結論
  • 理由
  • 雑談

やりたいこと

住所登録を名前でファイリングするアプリを作っています。
日本語では文字化け対策が必要なので、ひとまずローマ字入力でファイルを作って云々・・・。
chatGPT先生に質問をしつつ、コーディングを進めていると、

名前を入力してください:tanaka yasusi
住所を入力してください:america
anaka_yasusi.txt住所が追加されました。

なんでやねん
てなわけで、結論

結論

ignore()が原因だったみたい。

adress.cpp
cout << "名前を入力してください:";
  cin.ignore(); //コイツ
  getline(cin, name);

理由

リファレンスを参考にしてみたけど、まだイマイチ読み取れないのですがこのように考えました。
入力値の一時保持をクリアするために書いたコードだったのですが、ignore()は仮引数が入るので、0が入っていることが原因。
つまり、 0番目の文字が消えていると。

全くのignoreのことを理解できていないようでご指摘をいただきました。
詳しくはコメント欄参照
@SaitoAtsushiさん、ありがとうございます)

久しぶりの投稿

しばらくテスターでプログラミングの勉強ができなかった結果、プログラマとしての人生を出発できないでいました。
Rubyの開発に携わったけど、複数案件の掛け持ちで鬱っぽくなったので休職。
そして今回、現場でC++の案件に携わることができました。
ポートフォリオの作成をしつつスキルアップするために投稿しようと思います。

0
0
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?