C++複数種類のデータの動的入力を実現
ACMのような問題をするとき、動的にデータを入力するように要求されることがよくあります.このブログでは、Vectorを使用して複数のタイプの動的にデータを入力する方法をまとめました.まず、2つの関数を紹介します.
getch、getchar関数、両方の関数は毎回コンソールから1文字しか読み込めません
getch:
ヘッダファイル:conio.h
用途:コンソールから1文字を読み取るが、画面上では現実的ではない関数プロトタイプ:int getch(void)
getchar:
ユーザが入力文字は、ユーザがリターンを押すまでキーボードバッファに配置される.
異なるプラットフォームでは、リターンを押すとgetch()は異なる数値を返し、getchar()は統一的に10(すなわち)を返します.
実装コードは次のとおりです.
ダイナミック入力charタイプ
動的入力int,float,doubleタイプ
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;
}