cin将数据存放到temp里面,并且进行好了类型转换,也就是说如果temp是int,那么输入的数据就会转化成int,如果是string类型,那么就将输入的数据转换成string类型,然后存入到temp里面:
cin>>输入的数据不包含空格和回车,空格和回车会存入到cin的缓冲区中
如果想拿到输入的空格和回车,通过cin.get()获得
cin读取的每个数据以空格和回车分隔
cin.get()则是读取每个字符/数,包括空格和回车
while(cin >> value)
在while循环中,cin只有在遇到文件结束符(end-of-file),或遇到一个无效输入时(例如输入的值不是一个整数),cin的状态会变为无效退出循环。
从键盘输入文件结束符(end-of-file):
在Windows系统中,输入文件结束符的方法是按Ctrl+Z,然后按Enter或Return键。
在Unix系统中,包括在Mac OS X系统中,文件结束符输入Ctrl+D
int main() { int a, b; while(cin >> a >> b) { cout << a+b << endl; } return 0; }
int main(){ int n, a, b; cin >> n; for(int i = 0; i < n; ++i) { cin >> a >> b; cout << a + b << endl; } return 0; }
int main(){ int a, b; while(cin >> a >> b){ if(a == 0 && b == 0) break; cout << a + b << endl; } return 0; }
// 方式1 int main(){ int n; while(cin >> n&&n>0){ int sum=0, num; for(int i=0;i<n;i++){ cin >> num; sum+=num; } cout << sum << endl; } } // 方式2 #include<iostream> using namespace std; int main(){ int n, a; while(cin >> n){ if(n == 0)break; int sum = 0; for(int i=0; i<n; ++i){ cin >> a; sum += a; } cout << sum << endl; } return 0; }
#include<iostream> using namespace std; int main(){ int group, num; cin >> group; for(int i = 0; i < group; ++i){ cin >> num; int a; int sum = 0; for(int j = 0; j < num; ++j){ cin >> a; sum += a; } cout << sum <<endl; } }
#include<iostream> using namespace std; int main(){ int n; while(cin >> n){ int sum=0, num; for(int i=0;i<n;i++){ cin >> num; sum+=num; } cout << sum << endl; } }
#include<iostream> using namespace std; int main(){ int sum=0, a; while(cin >> a){ sum += a; if(cin.get() == '\n'){ // 判断数据之间的间隔是不是换行 cout << sum <<endl; sum = 0; } } }
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; int main(){ int n; cin >> n; string s; vector<string> res; for(int i=0; i<n; ++i){ cin >>s; res.push_back(s); } sort(res.begin(),res.end()); for(auto s: res){ cout << s << ' '; } return 0; }
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; int main(){ string s; vector<string> ans; while(cin >> s){ ans.push_back(s); if(cin.get()=='\n'){ sort(ans.begin(),ans.end()); for(auto s:ans){ cout << s << " "; } cout << endl; ans.clear(); } } return 0; }
#include<iostream> #include<string> #include<vector> #include<algorithm> using namespace std; int main(){ string s; vector<string> ans; char a; while(cin.get(a)){ // 一个一个字符地读 if(a!=','&&a!='\n'){ s = s + a; } if(a==','){ ans.push_back(s); s.clear(); } // 一组数据结束 if(a=='\n'){ ans.push_back(s); s.clear(); int n = ans.size(); sort(ans.begin(),ans.end()); for(int i=0;i<n-1;i++){ cout << ans[i] << ","; } cout << ans[n-1] << endl; ans.clear(); } } return 0; }
#include<iostream> using namespace std; int main(){ long a, sum=0; while(cin >> a){ sum += a; if(cin.get() == '\n'){ // 数据和数据之间不是换行,则是同组数据 cout << sum <<endl; sum = 0; } } return 0; }