C++不定长输入
1. 不需要存储
例如,输入一组个数未知的数,将它们求和输出。
#include <iostream> int main() { double input = 0; double sum = 0; while (std::cin >> input) sum = sum + input; std::cout << sum; return 0; }
在连续输入数字的过程中可以用空格或者回车将数字隔开。
最后用EOF停下来,Win下就是在最后一个输入后回车,ctrl+Z,再回车。UNIX下是ctrl+D。
再比如输入字符串,同样不需要存储,直接将读取的内容打印到屏幕上。
#include <iostream> #include <string> using std::string; int main() { string word; while (std::cin >> word) std::cout << word << std::endl; return 0; }
在输入的时候可以用空格或者回车将字符串之间隔开,用回车时直接显示,而用空格会在回车以后把每个单词单独一行显示。即可以用一行读取多个单词,但每个单词为一个字符串,字符串中是不包含空格的。#@()之类的符号同样可以作为字符串的合法输入,最后用EOF停下来。
如果希望字符串中存在空格,需要用getline()函数读取。
#include <iostream> #include <string> using namespace std; int main() { string line; while (getline(cin, line)) cout << line << endl; return 0; }