主要是学完了最基本的几个容器,现在要开始练习C++的输入输出了,主要是为了以后的面试或者程序设计赛。
用C的话意义不大,毕竟我用C写算法题,一是我不会其他语言,二是因为目前只想练练算法思维(毕竟力扣也不要求输入输出)。另外就是我确实很久没练C语言的输入输出了,好多东西都忘了。
以后刷题要换语言,过渡期也是有点痛苦的。
目前C语言力扣上是刷了101题。
下面由于我不会转载,那我就直接截图了_(:зゝ∠)_
一.一直循环输入
这个代码挺神奇的,当你输入2个数,即使2个数之间有多余的空格,换行,都没问题,只有检测到可以得到答案时,回车就会得到答案,要不然就是换行。
然后,输入3个数只能得到1个答案,输入4个数能得到2个答案,以此类推。
一次可以输入多组数据,而且得到答案后你可以再输入,一直循环下去,简直方便极了。
没有while的话,一次只能输入一组数据,cin是忽略多出来的数据的,也只能得到一组答案,然后代码窗口就关了(运行结束)。
二.指定输入行数
这里居然可以一次输入多组数据,没太明白。
看我这个例子,搞半天其实是,把你输入的所有数据都存起来,每次回车,从中按序挑2(或者说偶数个)个没被选的数字。会输出已算出但还未被输出的答案。每次cin的多出的数据都不会被忽略,而是存起来。
所以要想正确用该while+cin,就每次输出2个数,或者输出偶数个数的数据,可以一次性得到答案,要不然就不知道哪2个数对应哪个答案了。
三.指定输入条件
四.每组多个数据,有多组。(但给定了每组的数据个数)
五.从这题开始感觉已经可以找到套路了。就是前面几题代码的组合。
六.没啥问题
七.有点难度,所以我不打算会🌚🌚
auto可以代表复杂的变量类型,简化代码。
字符串输入输出第二题
主要是要会用stringstream。getline是改变流的输入输出条件。
#include
using namespace std;
int main()
{
int n;
string line;
while(getline(cin, line))
{
vector
arr; stringstream ss(line);
string item;
while(getline(ss, item, ' '))
这个while里换成ss>>item也行,主要就是用stringstream输出非空格的部分。
arr.push_back(item);
sort(arr.begin(), arr.end());
for(auto str: arr) cout << str << " ";
cout << endl;
}
return 0;
}
字符串第三题比第二题难一点点,不过也差不多。
那输入输出就算练完了吧。。。不来了。
更:突然又发现刷acwing的话有没有刷题路线,好像上面有4,5千题。还得转战小扣扣。