c++ - 如何将分数拆分为两个整数 C++

标签 c++

我正在做一项作业。我需要让用户以 #/# 格式输入分数。如何将顶部和底部设置为两个单独的变量?

这是我试过的一段代码,但我一直没有得到第二个变量的任何信息:

#include <iostream>
#include <conio.h>
#include <cstdio>
#include <regex>

using namespace std;

int main() {
    string firstFraction;

    cout << "Enter your first real Fraction: " << endl;
    firstFraction = cin.get();

    string delimiter = "/";

    string numerator = firstFraction.substr(0,firstFraction.find(delimiter));

    size_t pos = firstFraction.find("/");
    string denominator = firstFraction.substr(pos); 

    cout << numerator << " / " << denominator << endl;
    _getch();
    return 0;
}

最佳答案

尝试这样的事情:

#include <iostream>
#include <string>
#include <sstream>

using namespace std;

int main() {
    string fraction;

    cout << "Enter your first real Fraction: " << endl;
    getline(cin, fraction);

    istringstream iss(fraction);

    string numerator, denominator;
    getline(iss, numerator, '/');
    getline(iss, denominator);

    cout << numerator << " / " << denominator << endl;

    cin.get();
    return 0;
}

关于c++ - 如何将分数拆分为两个整数 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40009563/

相关文章:

c++ - 编译错误 libgcc_s_dw2-1.dll missing nothing works

c++ - 向mfc对话框控件添加变量

c++ - 如何使用 C/C++ 在 OS X 中获取分区偏移量?

C++ 派生类重载函数(带有 std::function 参数)不可见

C++ getline cin错误

c++ - 如何使用void指针(void*)

c++ - 你如何在类和命名空间内的 linux 中克隆()?

C++ CPU 寄存器使用

c++ - MIDL 中的 size_t、void* 和 hbitmap 数据类型等效项

c++ - 模板/多态性