ACM模式各种输入总结 C++

一、整型数组输入:

  1. (很简单)在终端的一行中输入固定数目整型数字,并存到数组中,中间以空格分隔。

示例:

  • 3
  • 1 2 3

int n;

cin >> n;

vector<int> nums(n);

for (int i = 0; i < n; ++i){

cin >> nums[i];

}

  1. (重难点)在终端的一行中输入非固定数目的整型数字,并存到数组中,中间以空格(或者其他单字符,./)分隔。

示例:

  • 1 2 3

//方法1getchar

//代码通过cin.get()从缓存中读取一个字节,这样就扩充了cin只能用空格和TAB两个作为分隔符。

//这很精巧。发现是'\n'就知道一行结束了

vector<int> nums;

int num;

while(cin >> num){

nums.push_back(num);

if(getchar() == '\n')

break;

}

   

//方法2cin.get

vector<int> nums;

int num;

while(cin>>num){

nums.push_back(num);

if(cin.get() == '\n')

break;

}

  1. 在终端的一行中输入固定数目的整型数字,并存到数组中,中间以(其他单字符,./)分隔。

示例:

  • 3
  • 1,2,3

int m;

cin >> m;

char sep;

vector<int> nums(m);

 

for (int i = 0; i < m - 1; ++i){

cin >> nums[i] >> sep;

}

cin >> nums[m - 1];

   

   

   

二、字符串输入:

  1. 给定一行字符串,每个字符串用空格间隔,一个样例为一行

示例: daa ma yello

int main() {

        string str;

        vector<string> strs;

        while (cin >> str) {

                strs.push_back(str);

                if (getchar() == '\n') { //控制测试样例

                        for (auto& str : strs) {

                                cout << "当前单词:"<< str << " ";

                        }

                        cout << endl;

                        strs.clear();

                }

        }

        return 0;

}

 

   

2、给定一行字符串,每个字符串用逗号间隔,一个样例为一行

方法:使用getline 读取一整行字符串到字符串input中,然后使用字符串流stringstream,读取单个数字或者字符。每个字符中间用','间隔

int main() {

        string input;

        while (getline(cin, input)) { //读取一行

vector<string> strs;

string str;

stringstream ss(input);

while(getline(ss, str, ',')){

strs.push_back(str);

}

sort(strs.begin(), strs.end());

         for (auto& str : strs) {

                cout << str << " ";

         }

         cout << endl;

}

        return 0;

}

   

   

3、给定一行字符串,每个字符串用空格间隔,一个样例为一行

int main() {

        string input;

        while (getline(cin, input)) { //读取一行

                stringstream data(input); //使用字符串流

                int num = 0, sum = 0;

                while (data >> num) {

                        sum += num;

                }

                cout << sum << endl;

        }

        return 0;

}

   

输入 1 2 3

输出6

 

 

  https://blog.csdn.net/weixin_44674424/article/details/124160921 

posted @ 2022-09-07 12:15  atomxing  阅读(737)  评论(0编辑  收藏  举报