gpt4 book ai didi

c++ - 无符号/有符号不匹配

转载 作者:行者123 更新时间:2023-11-28 00:52:24 32 4
gpt4 key购买 nike

我无法修复此警告消息。

警告 C4018:“<”:有符号/无符号不匹配

谁能帮我找出问题所在?它位于 while (i < bin.length()) 的 bool 函数中。

#include<iostream>
#include<string>
#include<math.h>
using namespace std;

void intro();
bool isBinary(string);
void decToBin();
string getBin();
void binToDec(string);
char getChoice();
char getContinue();

int main()
{
char choice, cont;
string bin;

intro();

do{
choice = getChoice();
if(choice == 'b' || choice == 'B')
{
bin = getBin();
bool binIsBinary = isBinary(bin);
if(binIsBinary)
binToDec(bin);
}
else
{
cout<<"Error!!! Your Number is Not Binary."<<endl;
cin.clear();

}
if(choice == 'd' || choice == 'B')
decToBin();

cont = getContinue();
}
while(cont == 'y' || cont == 'Y');
}



void intro()
{
cout << "This program coverts decimal numbers to binary and vice versa."<<endl;
}

bool isBinary(string bin)
{
int i=0;
bool binIsBinary = true;

while (i < bin.length())
{
if( bin.at(i) != '1' && bin.at(i) != '0' )
{
binIsBinary = false;
}
i++;
}

return binIsBinary;
}

void decToBin()
{
int dec;
string bin;

cout << endl << "Please enter a decimal number:";
cin >> dec;
bin = "";

while (dec != 0)
{
if (dec % 2 == 0)
bin.insert(0, "0");
else
bin.insert(0, "1");
dec = dec / 2;
}
cout << "The equivalent binary number is: " << bin << endl << endl;

}

string getBin()
{
string bin;

cout << endl << "Enter a binary number: ";
cin >> bin;

return bin;
}

void binToDec(string bin)
{
double deci;
double len;

len = bin.length();

deci = 0;
for (int i=0; i<len; i++)
if (bin.at(i) == '1')
deci = deci + pow(2, len-i-1);

cout << "The equivalent decimal number is: " << deci << endl
<< endl;
}

char getChoice()
{
char choice;

cout << endl << "If you would like to convert a binary to a decimal then enter b."<<endl;
cout << "If you would like to convert a decimal to a binary then enter d. ";
cin >> choice;

return choice;
}

char getContinue()
{
char cont;

cout << "Would you like to convert another number(Y/N)? ";

cin >> cont;

return cont;
}

最佳答案

嗯,i 作为一个 int,而 bin.length()unsigned,因此不匹配.要删除警告,请使我 unsigned

关于c++ - 无符号/有符号不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13415266/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com