C 问号输出
C++ Question mark output
本文关键字:输出 更新时间:2023-10-16
我有一个简单的程序,可以将小数号转换为二进制数字。当我运行程序时,没有错误会出现,但是我确实会有一个问号。我应该得到一组诸如" 00101"之类的值,我正在尝试使用一个返回字符串的函数。这是我的代码
#include <iostream>
using namespace std;
#include <string>
string convert(int num)
{
string binary;
int remainder;
while (num !=0 )
{
remainder = num % 2;
num = num / 2;
binary = remainder;
}
return binary;
}
int main()
{
int number;
string binaryNum;
cout << "Enter a Number:";
cin >> number;
binaryNum = convert(number);
cout << "This is your number in binary form:" << binaryNum << endl;
system("pause");
}
有什么想法吗?感谢您的帮助
此代码有几个问题。首先,您使用线路binary = remainder
上的=
符号分配了字符串binary
。您可能要写的是binary += remainder
,以将其余的余数附加到字符串中。
第二个问题也在该行上。string::operator=
和string::operator+=
都具有char的过载。当您通过int时,这些过载被称为。因此,将字符串设置为ASCII值为0或1的字符,因此问号字符,这不是您要寻找的内容。您可以使用std::to_string
轻松将int
转换为字符串。或者,如果您需要对格式的任何级别的控制,则可以使用std::ostringstream
如此答案。
换句话说,将binary = remainder;
更改为binary += std::to_string(remainder)
。
第三个问题:while
循环中有一个返回语句。循环一次迭代后,该功能将返回,无论num
有多大。删除该返回语句,因此convert
函数的末尾只有一个。
您的代码存在一个基本问题。当您返回值时,while循环只会迭代一次。您应该每次与剩余的连接二进制价值,并在循环外部返回。而且我没有检查逻辑,所以请检查一下。
相关文章:
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 如何将c++程序的一些输出传递给shell,以便在shell中使用
- 使用C++程序合并排序没有得到正确的输出
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- C++格式化输出问题
- 将值从二维数组输出到文本文件
- 集合上的输出迭代器:assign和increment迭代器
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 为什么rk4.do_step不输出C++中的初始条件
- 输出没有重复元素的动态数组(收缩数组)C++
- 如何根据单词在文本中出现的概率输出单词