蓝桥杯 1094: 字符串的输入输出处理 Easy only once *注意输入输出的问题
基本思路:
难点在于怎么输入整行元素,主要考察空格和回车的读入和甄别;
关键点:
这里注意几点:
1.while(cin)和while(scanf)雷同,都可以进行EOF的判断;
2.在读取时要注意,cin>>n由于回车结尾,会导致下一个getline直接把回车都进去,所以要getchar进行处理;
3.整行读入的时候,getline更方便一点;
4.cpp和c输入场景灵活使用;
补充一点,getline看来是整体读入,如果读到回车符号,则中断;
所以在cin>>n后如果不把回车处理到,getline第一个读到的就是回车符号,直接就会中断,此时s为空字符串;
#include<iostream> #include<stdlib.h> #include<stdio.h> #include<vector> #include<string> #include<math.h> #include<algorithm> #include<cstring> using namespace std; using std::vector; vector<string>vec; int main() { int n; cin >> n; getchar(); string s; for (int i = 0; i < n; i++) { getline(cin, s); vec.push_back(s); //cout << s << endl; } while (cin >> s) { vec.push_back(s); } for (int i = 0; i < vec.size(); i++) { if (i == 0) cout << vec[i] << endl; else cout << endl << vec[i] << endl; } //system("pause"); return 0; }