gpt4 book ai didi

c++ - 像 Char 一样用 Int 填充数组; C++,cin 对象

转载 作者:行者123 更新时间:2023-11-30 03:04:52 26 4
gpt4 key购买 nike

这是一个非常简单的问题;第一次张贴者和长期观察者。

这是我写的二进制到十进制转换器:

#include <iostream>
#include <cmath>
using namespace std;
const int MAX = 6;
int conv(int z[MAX], int l[6], int MAX);

int main()
{
int zelda[MAX];
const int d = 6;
int link[d];

cout << "Enter a binary number: \n";
int i = 0;
while (i < MAX && (cin >> zelda[i]).get()) //input loop
{
++i;
}

cout << conv(zelda, link, MAX);

cin.get();
return 0;
}

int conv(int zelda[MAX], int link[6], int MAX)
{
int sum = 0;
for (int t = 0; t < MAX; t++)
{
long int h, i;
for (int h = 5, i = 0; h >= 0; --h, ++i)
if (zelda[t] == 1)
link[h] = pow(2.0, i);
else
link[h] = 0;
sum += link[t];
}
return sum;
}

随着处理输入循环的方式,我必须在每次输入数字后按回车键。我还没有添加任何纠错(而且我的一些变量是模糊的),但想输入一个二进制文件,比如 111111 而不是 1 enter、1 enter、1 enter 等来填充数组。我愿意接受任何技术和其他建议。也许将其作为字符串输入并将其转换为 int?

我会继续研究的。谢谢。

最佳答案

读取数据,see this related question (并用 std::cin 替换文件流)。

要转换,您可以做一些简单的事情:

unsigned int convert(const std::string & s)
{
// maybe check that s.size() <= CHAR_BIT * sizeof(unsigned int)

unsigned int result = 0;

for (std::string::const_reverse_iterator rit = s.rbegin(), rend = s.rend(); rit != rend; ++rit)
{
result *= 2;

if (*rit == '1') ++result;

else if (*rit != '0') { /*error!*/ return -1; }
}

return result;
}

关于c++ - 像 Char 一样用 Int 填充数组; C++,cin 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8264024/

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