我一直在尝试编写一个 prog,它以 Rs50000 的形式接受大学费用作为输入,我只想使用不可分割的部分进行计算。我怎样才能做到这一点??这可能吗??
#include<iostream>
using namespace std;
int main()
{
int fee;
cin >> Rs >> fee;
return 0;
}
为了读取字符串并按照您的描述处理它,以下应该可以工作。
std::string input;
std::cin >> input;
int fee = atoi(input.substr(2).c_str());
此代码从标准输入获取输入。然后它将费用(结束的第三个字符)解析为 int。当然,还有其他方法可以做到这一点。我是 C 的粉丝,c_str()
并且atoi()
因为有 C 的背景,但是stringstream也同样有能力。
关于您的原始代码的注释。可能很自然地认为您会流式传输两次:
std::cin >> Rs >> fee;
因为一部分是字符串,另一部分是 int。但是,std::cin
流由空格分隔。
希望这可以帮助!
是的,这是可能的,有很多方法可以做你想做的事,这是一种方法。将输入作为字符串并使用 substr() 删除“Rs”。然后将其转换为 int。
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
stringstream stream;
string amount,str;
int fee;
getline (cin, amount);
str = amount.substr(2);
stream << str;
stream >> fee;
cout << "Fee is : " << fee+1 << "\n"; //fee
return 0;
}