3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コーディングテストする人必見!!競プロとは違う入力方法(C++)

Posted at

競技プログラミングでのよくある入力

競技プログラミングでは,必ず入力数が指定されるため,どのぐらい回帰すればいいのかわかります.
数字がしていされたり,
ABC262 B
スクリーンショット 2024-05-30 17.40.49.png

終了条件が決まっていたり,
ABC244 C
スクリーンショット 2024-05-30 17.43.14.png

写真はないですが,なんかの文字が入力されたら終了といったりするものが多いです.

コーディングテストでの入力

しかし,企業のコーディングテストでは,入力の行数が指定されていない場合や、入力の終了タイミングが不明な場合があります.
そんなときは,getline()関数を用いて標準入力から行を読み込む方法が効果的!!
この関数は,指定されたストリームから一行を読み込みます.特に, EOF(End-Of-File)に達するまで続けて入力を読み込むことが可能です.
いかに具体的なコードを書きます

test.cpp
#include<iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;

int main() {
    string line;
    vector<string> lines;
    while (getline(cin, line)) {
        if (!line.empty()) {
            lines.push_back(line);
        }
    }
    for(int i = 0;i < lines.size();i++){
        cout << i << "行目:" << line[i] << endl;
    }
}

入力

make sushi 10
eat sushi
like Tom tuna
like Rika tuna
made sushi Tom

出力

0行目:make sushi 10
1行目:eat sushi
2行目:like Tom tuna
3行目:like Rika tuna
4行目:made sushi Tom

まとめ

このように,入力数が指定されていなくても,入力を最後まで読み込むことが可能です!
競技プログラミングではめったに出会わないような入力方法ですよね...
アルゴリズムはわかっていても,入力方法に時間を取られていてはもったいないので是非とも覚えておいてください!!!

3
4
0

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
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?