首页 > 编程语言 >ACM模式各种输入总结 C++

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

时间:2022-09-07 12:23:11浏览次数:96  
标签:nums int cin ACM strs num C++ str 输入

一、整型数组输入:

  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

//方法1:getchar

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

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

vector<int> nums;

int num;

while(cin >> num){

nums.push_back(num);

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

break;

}

   

//方法2:cin.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 

标签:nums,int,cin,ACM,strs,num,C++,str,输入
From: https://www.cnblogs.com/libxing/p/16664963.html

相关文章

  • input输入框正则限制正负数和小数点后两位
    JS前端输入框正则限制正负数和小数点后两位1.只能输入正负数,包括小数点value=value.replace(/[^\d\.-]/g,’’)2.只能输入正数,不包括小数点value=value.replace(/[^\d......
  • vscode环境配置(C/C++)
    一.MinGW和vscode的简单了解1.MinGW是什么?MinGW(MinimalistGNUonWindows)。它实际上是将经典的开源C语言编译器GCC移植到了Windows下,并且包含了Win32API,因此可......
  • c++知识点速刷
    语法指针和引用指针:存放某个对象的地址引用:变量的别名,从一而终,不可变,必须初始化const变量指针常量(底层const):指针所指的对象不可变常量指针(顶层const):指针不可变defin......
  • 强化学习——价值迭代算法 悬崖漫步为例 C++
    #include<bits/stdc++.h>usingnamespacestd;#defineN100#definecliffcliff_mapintrow,col;structState{intnext_i,next_j,flag;doublereward;......
  • vc++ get random via random_device,mt19937
     #include<ctime>#include<iostream>#include<random>usingnamespacestd;staticrandom_devicerd;staticmt19937mt{rd()};template<typenameT>vo......
  • [C++]类名加个括号是什么东东
    先考考大家,下面的代码,编译得过吗?classMyClass{public:MyClass(){printf("MyClass\n");}};int_tmain(intargc,_TCHAR*argv[]){......
  • linux标准输入输出以及重定向
    1.经常遇到<<<>>>0>&1是什么意思以上表示某种输入输出重定向,具体了解前要知道什么是标准输入输出。2.什么是标准输入输出标准输入输出实际完整的叫法是标准输入......
  • Java调用C++动态链接库——Jni
    最近项目需要,将C++的算法工程编译成动态链接库,交给Java后台当作函数库调用。就去了解了下Jni。使用起来还是比较方便的。1.  首先编写Java的调用类。例如:  public......
  • 记刷题过程中发现的C++与C的差异
    前言上大学了,学c。标题嫖自@快乐永恒正题01#include<stdio.h>intmain(){longlonga,b;scanf("%lld%lld",&a,&b);printf("%lld%lld%lld%lld%l......
  • conda环境报错:libgomp.so.1: version `GOMP_4.0' not found?libstdc++.so.6: version `
    问题之前的conda环境好好地,最近不知为何被破坏了,运行即报错:/miniconda3/opt/lib/R/bin/exec/R:/miniconda3/opt/lib/R/bin/exec/../../lib/../../libgomp.so.1:version......