CP 001.输入不定的情况
Posted paulprayer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CP 001.输入不定的情况相关的知识,希望对你有一定的参考价值。
1.连续输入多个整型数据
循环语句while和for:
- while循环:
- 当输入不定的情况下,使用while循环比较合适,在windows系统下,先敲Ctrl+Z,再按Enter ——适用于整型输入结束;
- 对于非整型数据(如字符串数据)的连续输入,则需要使用第二部分内容的方式;
- 当输入不定的情况下,使用while循环比较合适,在windows系统下,先敲Ctrl+Z,再按Enter ——适用于整型输入结束;
- for循环:
- 当输入确定的情况下,使用for语句比较方法,while也可以;
- 对于需要遍历容器或其他序列的所有元素,可以使用C++提供的范围for语句。
//范围for语句——示例 vector<int> v = {0,1,2,3,4,5,6,7,8,,9}; //范围变量必需是引用类型,这样才能对元素执行写操作 for (auto &r : v){ r *= 2; //将v中元素值翻倍 }
/*数量不定的输入数据(整型)*/
//示例:实现对用户输入的一组数求和 //文件结束符: //windows系统:先敲Ctrl+Z,再按Enter ——适用于整型输入结束 #include <iostream> using namespace std; int main() { int sum = 0, val = 0; //iostream对象作为条件 /*当遇到“文件结束符(end-of-file)”,或者遇到一个无效输入时,isteam对象的状态会变为无效*/ //处于无效状态的istram对象会使条件变为假 while (cin >> val) //敲Ctrl+Z,再按Enter结束输入 { sum += val; } cout << "Sum is " << sum << endl; return 0; }
2.连续输入多个字符串
//文件结束符: //windows系统:先敲Ctrl+Z,再按Enter #include <iostream> //编写一段程序从标准输入中读入多个字符串并将它们连接在一起 //用空格把输入的多个字符串分割开,输出连接成的大字符串(只是中间需要隔开,第一个不需要,多一个if) #include <iostream> #include <string> using namespace std; int main() { string s, result; //result用来保存最终的结果 char cont = ‘y‘; //与用户交互,cont用于判断是否继续收入 cout << "请输入第一个字符串:" << endl; while (cin >> s) { //if (result.size()==0)//判断读入的是第一个字符串,不加空格 if (!result.size())//推测,这样执行效率更高 { result += s; } else //之后拼接的字符串每一个前面都加空格 { result = result + " " + s; } cout << "是否继续输入?(y or n?):" << endl; //判断是否继续输入 cin >> cont; if (cont == ‘y‘ || cont == ‘Y‘) { cout << "请输入下一个字符串:" << endl; } else { break; } } cout << "最终结果为" << result << endl; return 0; }
参考资料:
1.《C++ Primer》中文版(第五版),Stanley B.Lippman等著,电子工业出版社
以上是关于CP 001.输入不定的情况的主要内容,如果未能解决你的问题,请参考以下文章