如何处理CPP中弦线中的空间
how to handle spaces in stringstream in cpp?
i正在求解arithmaticii。我将获得以下输入的正确输出:
41 1 * 2 =29/5 =103 * 103 * 5 =50 * 40 * 250 791 =
输出:
4553045500791
我得到了正确的输出,但是当我向SPOJ提交解决方案时,我获取SIGABRT
运行时错误。
注意:它也可能包含提高可读性的空间。
由于输入可能不包含空格,我该如何处理,因为那是给我错误的。
因为我不提供程序时我的程序停止(运行时错误)输入(1 * 1 2 =)
中的空间扔出" std :: invalid_argument"实例后终止调用 什么():stoll
请帮忙。我该怎么办?
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
int main() {
int t;
string str;
cin >> t;
while (t--) {
///using cin.ignore() as input as preceded by a single line
cin.ignore();
getline(cin, str, 'n');
stringstream split(str);
///now use getline with specified delimeter to split string stream
string intermediate;
int flag = 0;
long long int ans=1;
while (getline(split, intermediate, ' ')) {
if (intermediate == "=") {
cout << ans<<"n";
break;
}
if (intermediate == "*") {
flag = 1;
continue;
}
else if (intermediate == "/") {
flag = 2;
continue;
}
else if (intermediate == "+") {
flag = 3;
continue;
}
else if(intermediate == "-"){
flag = 4;
continue;
}
if (flag == 1) {
ans *= stoll(intermediate);
}
else if (flag == 2) {
ans /= stoll(intermediate);
}
else if (flag == 3) {
ans += stoll(intermediate);
}
else if (flag == 4) {
ans -= stoll(intermediate);
}
else if (flag == 0) {
ans = stoll(intermediate);
}
}
}
}
一次输入一行。将第一个数字放入ANS。然后按字符循环浏览弦乐器的其余部分。如果字符是算术运算符('*'或' '或'/'或' - ),则在其之后将有一个数字。提取数字并执行指定的操作。如果字符是'='打印答案。
提示:如何提取数字?
1.第一个数字从开始并直到第一个算术运算符。
2。所有其他数字均在算术运算符或'='。
相关文章:
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 命名空间中具有.h和.cpp文件的类
- 使用命名空间在另一个".cpp"文件中定义
- 是否将命名空间范围文件本地 (.cpp) 常量放在匿名命名空间中
- 在多个 cpp 文件中重用未命名的命名空间函数
- C++:.cpp中"Redeclare"外部命名空间变量
- 如何在CPP中添加XMLXPathRegistern(Libxml2)中的多个名称空间
- 如何处理CPP中弦线中的空间
- 在CPP文件的匿名名称空间中具有模板函数是否合适
- cpp:关于未定义引用"(匿名命名空间)::CPassant::NbCPassant"的说明
- 在两个不同的头中声明相同的名称空间,然后将它们包含在一个cpp中
- 有没有办法在单独的 .h 和 .cpp 文件中定义在命名空间中声明的函数
- 匿名命名空间,用于在两个 cpp 文件中包含一个函数
- 来自单独.cpp文件中同一命名空间的 free 函数,C++ 中无法识别
- 在 cpp 文件中命名空间范围内"Private"变量
- 在 CPP 文件中使用命名空间作为函数定义的前缀是否是一种好的做法
- Yaml-cpp 解析不起作用 冒号后缺少空间
- 名称空间,包括cpp文件中具有相同名称的函数
- 在cpp文件的命名空间中定义常量
- .cpp文件中的两个名称空间用于比较