C++複数種類のデータの動的入力を実現


ACMのような問題をするとき、動的にデータを入力するように要求されることがよくあります.このブログでは、Vectorを使用して複数のタイプの動的にデータを入力する方法をまとめました.まず、2つの関数を紹介します.
getch、getchar関数、両方の関数は毎回コンソールから1文字しか読み込めません
getch:
ヘッダファイル:conio.h
用途:コンソールから1文字を読み取るが、画面上では現実的ではない関数プロトタイプ:int getch(void)
getchar:
ユーザが入力文字は、ユーザがリターンを押すまでキーボードバッファに配置される.


異なるプラットフォームでは、リターンを押すとgetch()は異なる数値を返し、getchar()は統一的に10(すなわち)を返します.
実装コードは次のとおりです.
ダイナミック入力charタイプ
#include<iostream>
#include<cmath>
#include <conio.h>
#include<vector>
using namespace std;
int main()
{
    vector<char> vec;
    char c;
    while(c = getchar())
    {
        //    ASCII 
        if(c == 10)
            break;
        //    ASCII 
        if(c != 32)
        {
            vec.push_back(c);
        }
    }
    int k = vec.size();
    for(int i = 0;i<k;i++)
    {
        cout<<vec[i]<<" ";
    }
    cout<<endl;

動的入力int,float,doubleタイプ
#include<iostream>
#include<cmath>
#include <conio.h>
#include<vector>
using namespace std;
int main()
{
    vector<int> vec;
    int a;
    while(cin>>a)
    {
        //  push_back(a)   ,             ,  push  
        vec.push_back(a);
        //        ,getchar()        
        if(getchar()==10)
        {
            break;
        }
    }
    int k = vec.size();
    for(int i = 0;i<vec.size();i++)
    {
        cout<<vec[i]<<" ";
    }
    cout<<"
seccuss"<<endl; }