在LeetCode上刷题刷习惯了后,参加各种笔试时没想到遇到的第一只拦路虎竟是输入输出!如果对输入输出操作不熟练,就会笔试中耽误大量时间,挤占答题时间,从而与offer失之交臂。故,今天抽时间好好整理一番,顺带给出牛客网输入输出十一题的题解。
cin
是 C++ 标准输入流对象,即 istream
类的对象。主要用于从标准输入读取数据,这里的标准输入指键盘。cin
的工作原理依赖于标准输入缓冲区,从键盘输入字符串的时候需要敲一下回车键才能够将这个字符串送入到缓冲区中。敲入的这个回车键 r
会被转换为一个换行符 n
,这个换行符也会被存储在缓冲区中并且被当成一个字符。
cin
从缓冲区中获取数据,缓冲区为空时,cin
的成员函数会陷入阻塞并等待数据,一旦缓冲区中有数据,就触发 cin
的成员函数去读取。
通过 cin>>
可以连续从键盘读取数据,其中空格、tab 或换行被视为分隔符。
#include <iostream>
#include <string>
using namespace std;int main() {char c;int i;float f;string str;cin>>c>>i>>f>>str;cout<<c<<" "<<i<<" "<<f<<" "<<str<<endl;return 0;
}
cin>>
从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行符这些分隔符时,cin>>
会忽略并将其清除,继续读取下一个字符;若缓冲区为空,则继续等待。如果读取成功,字符后面的分隔符会残留在缓冲区。函数原型:
int get();//无参
istream& get(char& var);
使用方式:
#include <iostream>
using namespace std;int main() {char a;char b;a = ();(b);cout<<a<<b<<endl;return 0;
}
cin
对象本身,因此支持链式操作,如<(b).get(c)。函数原型:
istream& getline(char* s, streamsize count);
istream& getline(char* s, streamsize count, char delim);//delim 为结束符
#include <iostream>
using namespace std;int main() {char c;char array[20]={NULL}; (array,20);(c);cout<<array<<" "<<(int)c<<endl;return 0;
}
n
时终止,并且将 n
直接从输入缓冲区中删除,不会影响下面的输入处理。函数原型:
istream& getline(char* s, streamsize count);
istream& getline(char* s, streamsize count, char delim);//delim结束符
#include <iostream>
using namespace std;int main() {char array[20]={NULL};line(array,20); //或者指定结束符,使用下面一行//line(array,20,'n');cout<<array<<endl;return 0;
}
函数原型:
istream& getline (istream& is, string& str); // 默认以换行符n分隔行
istream& getline (istream& is, string& str, char delim);
#include <string>
#include <iostream>
using namespace std;int main() {string str;getline(cin,str);cout << str << endl;return 0;
}
getline()
遇到结束符时,会将结束符一并读入指定的 string 中,再将结束符替换为空字符;getline()
类似,但是因为 char*
,getline()
的输出是 string
,所以 istream
流,而 getline()
属于 string
流,二者是不一样的函数。#include<bits/stdc++.h>
using namespace std;
int add(int num1, int num2){return num1 + num2;
}int main(){int a, b;while(cin>>a>>b){cout<<add(a, b)<<endl;}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int add(int a, int b){return a + b;
}int main(){int t, a, b;cin>>t;while(cin>>a>>b){cout<<add(a, b)<<endl;}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int add(int num1, int num2){return num1 + num2;
}int main(){int a, b;while(cin>>a>>b){if(a == 0 && b == 0) break;cout<<add(a, b)<<endl;;}return 0;
}
#include<bits/stdc++.h>
using namespace std;int main(){int n;while(cin>>n){if(n == 0) break;else{int sum = 0;while(n--){int a;cin>>a;sum += a;}cout<<sum<<endl;}}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;while(n--){int m;cin>>m;int sum = 0;while(m--){int num;cin>>num;sum += num;}cout<<sum<<endl;}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){int n;while(cin>>n){int sum = 0;while(n--){int num;cin>>num;sum += num;}cout<<sum<<endl;}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){int num, sum;while(cin>>num){sum += num;() == 'n'){cout<<sum<<endl;sum = 0;}}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){int n;cin>>n;vector<string> str;for(int i = 0; i < n; i++){string s;cin>>s;str.push_back(s);}sort(str.begin(), d());for(int i = 0; i < n; i++){cout<<str[i];if(i != n - 1) cout<<' ';}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){string s;vector<string> str;while(cin>>s){str.push_back(s);() == 'n'){sort(str.begin(), d());for(int i = 0; i < str.size(); i++){cout<<str[i];if(i != str.size() - 1) cout<<' ';}cout<<endl;str.clear();}}return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){string s;getline(cin, s);while(s.size()){vector<string> str;int begin = 0;for(int i = 0; i < s.size(); i++){if(s[i] == ','){str.push_back(s.substr(begin, i - begin));begin = i + 1;}}str.push_back(s.substr(begin, s.size() - begin));sort(str.begin(), d());for(int i = 0; i < str.size(); i++){cout<<str[i];if(i != str.size() - 1) cout<<',';}cout<<endl;getline(cin, s);}return 0;
}
#include<bits/stdc++.h>
using namespace std;
long add(long a, long b){return a + b;
}int main(){long a, b;cin>>a>>b;cout<<add(a, b);return 0;
}
本文发布于:2024-01-30 22:10:35,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170662383923182.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |