输入输出归纳总结
文章目录
输入
只有一组输入数据
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
scanf("%d%d", &a, &b);
printf("%d %d", a, b);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
cout << a << " " << b << endl;
return 0;
}
有多组测试数据,直到读至输入文件结尾为止
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
while(scanf("%d %d", &a, &b) != EOF)
{
printf("%d %d", a, b);
printf("\n");
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b;
while(cin >> a >> b)
cout << a << " " << b << endl;
return 0;
}
在开始的时候输入一个N,接下来是N组数据
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
scanf("%d", &n);
while(n--)
{
int a, b;
scanf("%d %d", &a, &b);
printf("%d %d", a, b);
printf("\n");
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, n;
cin >> n;
while(n--)
{
cin >> a >> b;
cout << a << " " << b << endl;
}
\return 0;
}
字符串的输入
接收一个字符串,遇空格,Tab,Enter结束
#include <bits/stdc++.h>
using namespace std;
int main() {
char a[20];
cin >> a;
cout << a << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main() {
string str;
cin >> str;
cout << str << endl;
return 0;
}
使用cin.get()接收字符或字符串
接收字符
#include <bits/stdc++.h>
using namespace std;
int main() {
char ch;
ch = cin.get();
cout << ch << endl;
return 0;
}
接收字符串,可以接收空格
#include <bits/stdc++.h>
using namespace std;
int main() {
char a[20];
cin.get(a,20);
cout << a << endl;
return 0;
}
使用cin.getline()接收一个字符串,可以接收空格并输出
#include <bits/stdc++.h>
using namespace std;
int main() {
char m[20];
cin.getline(m,20);
cout << m << endl;
return 0;
}
接收多维数组
#include <bits/stdc++.h>
using namespace std;
int main() {
char m[3][20];
for(int i = 0; i < 3; i++)
{
cin.getline(m[i],20);
cout << m[i] << endl;
}
return 0;
}
需要包含string头文件的用法:getline()接收包含空格的串
#include <bits/stdc++.h>
using namespace std;
int main() {
string str;
getline(cin, str);
cout << str << endl;
return 0;
}
需要包含string头文件的用法:gets()接收一个可含空格的字符串
#include <bits/stdc++.h>
using namespace std;
int main() {
char m[20];
gets(m);
cout << m << endl;
system("pause");
return 0;
}
接收多维
#include <bits/stdc++.h>
using namespace std;
int main() {
char m[3][20];
for(int i = 0; i < 3; i++)
{
gets(m[i]);
cout << m[i] << endl;
}
system("pause");
return 0;
}
需要包含string头文件的用法:getchar()接收一个字符
#include <bits/stdc++.h>
using namespace std;
int main() {
char ch;
ch = getchar();
cout << ch << endl;
system("pause");
return 0;
}
while解决多组测试数据输入
while(scanf("%d", &n) != EOF);读取读取字符
while((c = getchar()) != EOF);
char line[1024];
while(gets(line));
带逗号的字符串,带其他的也是可以的
#include <bits/stdc++.h>
using namespace std;
int main()
{
vector<string> stu;
string ss;
cin >> ss;
stringstream sstr(ss);
string token;
while(getline(sstr, token, ','))
{
stu.push_back(token);
}
for(int i = 0 ; i < stu.size(); i++)
cout << stu[i]<<endl;
return 0;
}