0

我一直在尝试编写一个 prog,它以 Rs50000 的形式接受大学费用作为输入,我只想使用不可分割的部分进行计算。我怎样才能做到这一点??这可能吗??

#include<iostream>
using namespace std;
int main()
{
   int fee;
   cin >> Rs >> fee;
   return 0;
}
4

2 回答 2

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流由空格分隔。

希望这可以帮助!

于 2013-11-10T09:38:34.197 回答
0

是的,这是可能的,有很多方法可以做你想做的事,这是一种方法。将输入作为字符串并使用 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;
}
于 2013-11-10T10:41:03.757 回答