熟悉C++的输入输出流 本关任务:从键盘输入一串由字母和数字或空格组成的符号串,以$作为结尾标记。分离输入串中的字母串或数字串,并计算数字之和。 测试 例如: 输入:11 23abc4 5a$ 则输出: 11 23 abc 4 5 a sum:43
时间: 2024-09-08 21:02:22 浏览: 26
在C++中,处理输入输出流(Input Output Stream)通常涉及到`cin`和`cout`。为了完成这个任务,你可以使用`std::getline`函数读取整个字符串,然后使用`std::istringstream`将输入分割成各个部分。接下来,你需要遍历每个部分,检查它是否为数字并累加到总和中。
以下是步骤的示例代码:
```cpp
#include <iostream>
#include <sstream>
#include <string>
int main() {
std::string input;
int total_sum = 0;
// 从键盘读取输入直到遇到$
std::getline(std::cin, input, '$');
if(input.back() == '$') { // 检查输入尾部是否是$
input.pop_back(); // 移除结束符
}
std::istringstream iss(input);
std::string token;
while (iss >> token) { // 分割输入并逐个读取
if (isdigit(token[0])) { // 如果是数字
int num = std::stoi(token); // 转换为整数
total_sum += num;
}
else if (!token.empty()) { // 如果是字母串或其他非数字字符
std::cout << token << " ";
}
}
std::cout << "\nsum: " << total_sum << std::endl; // 输出结果
return 0;
}
```