ACM模式输入输出处理
1.1. getline(istream is,string str,以该符号结束)
默认以'\n'为换行符
1.2. cin
遇到 \n会停止读取 但是不会读出来
此时这个\n还在, 如果继续cin, 没问题; 但如果使用getline()就会让getline()认为自己读了一行空数据.
解决: 可以用getchar()
跳过
2.1. 数组长度确定, 多组数据
在测试的时候没有写循环, 得在自己的代码中写循环
输入
1 5
10 20
输出
6
30
int MySum(int a, int b)
{
return a+b;
}
while(cin>>a>>b)
{
cout<<MySum(a,b)<<endl;
}
第一个数表示组数的, 直接给个size,然后for循环
输入
2
1 5
10 20
输出
6
30
2.2. 数组长度不确定, 单组数据
','分割
两个getline()第一个分割一行到stringstream中, 第二个根据','分割
输入例子:
1,5,7,9
2,3,4,6,8,10
输出例子:
1,2,3,4,5,6,7,8,9,10
std::vector<int> vec;
int size = 0;
cout<<"要输入的行数: ";
cin>>size;
getchar();
std::string line;
for (int i=0;i<size&&getline(cin, line, '\n');i++) // 以'\n'为分隔符
{
// 使用 std::stringstream 分割字符串
std::stringstream ss(line);
std::string token;
while (std::getline(ss, token, ',')) // 以','为分隔符
{
vec.push_back(std::stoi(token));
}
}
cout<<"vec.size() = "<<vec.size()<<endl;
// 输出 vector<int>
for (const auto& num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
有指出某行的长度的, 使用cin; 否则考虑用getline()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)