错误:comp。打赌。有符号/无符号整数表达式CODEBLOCKS

时间:2011-09-30 07:03:24

标签: c++

赋值是:将一个数字保存在一个字符串中,然后从一个字符串转换为一个整数 - >将该数字转换为用户输入的N-base的十进制数。

#include <iostream>

using namespace std;

int main()
{
    string snum;
    int n=0, base, res;

    cout << "enter n: ";
    cin >> snum;
    cout << "enter base: ";
    cin << base; //THIS IS LINE 13

    for (int i=0; i<snum.length(); i++) // des order
    {
        int digit = snum.at(i) - '0';
        n = (n*1) + digit;
        if (


       base <= 10
        )   res = base * n;

    cout << "n is " << res << endl;

    }

}

我得到错误:签名和未签名的整数表达式之间没有匹配[第13行]

所有!!

*如果您发现逻辑上有任何问题,请告诉我们! *使用代码块

1 个答案:

答案 0 :(得分:1)

cin << base; //THIS IS LINE 13
你的意思是

cin >> base;

编辑:

你应该以不同的方式转换数字,而不是抓取每个字符取整个字符串并将其转换为数字。您可以使用流或仅使用atoi(sum.c_str())来获取整数。

之后

将值转换为您想要的任何基数。

e.g。

snum=12 (converted to integer from input string)
base=8

12 - 8 (>8, number of times you can subtract) --> 1
4 - 8 (<8 use remainder) --> 4

output == 14