编程题输入输出

编程题本来应该都是leetcode那种,多多关注核心算法问题,而不是这些输入输出形式上的东西,但是笔试编程题还是有很多不如人意的东西存在。
1、连续输入多个数字

/**
 *Copyright @ 2019 Zhang Peng. All Right Reserved.
 *Filename:
 *Author: Zhang Peng
 *Date:
 *Version:
 *Description:
**/

#include
#include
using namespace std;

int main()
{	
	vector<int > data;
	int check;
	cin>>check;
	data.push_back(check);
	while (getchar()!='\n')
	{
		cin >> check;
		data.push_back(check);
	}

	for (int i = 0; i < data.size(); i++)
		cout << data[i] << " ";
	cout << endl;

    system("pause");
    return 0;
}

在这里插入图片描述
2、连续输入多个字符串

/**
 *Copyright @ 2019 Zhang Peng. All Right Reserved.
 *Filename:
 *Author: Zhang Peng
 *Date:
 *Version:
 *Description:
**/

#include
#include
#include
using namespace std;

int main()
{	
	vector<string > data;
	string check;
	cin>>check;
	data.push_back(check);
	while (getchar()!='\n')
	{
		cin >> check;
		data.push_back(check);
	}

	cout << "your input: " << endl;
	for (int i = 0; i < data.size(); i++)
		cout << data[i] << " ";
	cout << endl;

    system("pause");
    return 0;
}

在这里插入图片描述
3、字符和数字混合输入
比如 a:2,b:3
只提取其中的数字

/**
 *Copyright @ 2019 Zhang Peng. All Right Reserved.
 *Filename:
 *Author: Zhang Peng
 *Date:
 *Version:
 *Description:
**/


#include
#include
using namespace std;

int main()
{	
	vector<int > data;
	char check;
	char prefix[3];
	int value;
	cin.get(check);
	cin.get();
	cin >> value;
	data.push_back(value);
	cin.get(check);
	while (check != '\n')
	{
		cin.get(prefix,3);
		/*
		cin.getline(prefix, 3);
		cin.clear();   //这一句非常重要,删了程序出错
        */
		cin >> value;
		data.push_back(value);
		cin.get(check);
	}

	cout << "your input: " << endl;
	for (int i = 0; i < data.size(); i++)
		cout << data[i] << " ";
	cout << endl;

    system("pause");
    return 0;
}

在这里插入图片描述
建议使用cin和cin.get完成数据的读入,cin.getline有些特性还是有点出人意料。

你可能感兴趣的:(刷题)