C++二进制条形码赋值
C++ Binary Bar Code Assignment
我正在学习计算机科学和使用C++的入门课程。
我们的任务是创建不同的"条形码扫描仪"——二进制,代码39和代码48。这是二进制部分的代码,其中条形码由交替的黑白条纹组成,其中每个条纹要么宽要么窄。宽条形表示为1,窄条形表示为0。
任务的指导方针是:
- 读取表示代码中条形数的数字b(奇数整数1≤b≤21)
- 读取b个字符,每次一个
- 每个字符要么是w表示宽,要么是n表示窄
- 宽条形为1,窄条形为0
- 将条形码转换为等效数字并显示数字
我觉得我的代码还可以,但它不会返回超过6位数的任何内容。如果我将b输入为7到21之间的任何值,它仍然要求输入那么多整数,但只打印其中的6个。
谢谢你的帮助!
#include <iostream>
using namespace std;
int main(){
int b; //number of bars
int i = 0; //loop variables
int k = 0;
int l = 0;
cout << "Number of bars in code (between 1 and 21): " ;
cin >> b;
char arraychars[b]; //barcode as w's and n's
int arrayint[b]; //whole barcode as ints
while (b <= 21 && b >= 1) //b is in range
{
for (i=0; i<b; i++)
{
cout << "Enter character (w for wide, n for narrow): " << endl;
cin >> arraychars[i];
}
for (k=0; k<b; k++)
{
if (arraychars[k] == 'w')
arrayint[k] = 1;
else if (arraychars[k] == 'n')
arrayint[k] = 0;
else
break;
}
for (l=0; l<b; l++) //prints
cout << arrayint[l] ;
break; //exits loop
}
return 0;
}
main()
的前两行应该已经发出了大量警告。重点是C++中的数组是静态大小的,在这里,您创建了一个数组,其大小由以前未初始化的b
的值决定。天知道编译器是怎么做的。将其替换为std::vector
或std::string
。
您必须在"int b;"
之后声明您的数组;
int b; //number of bars
int i = 0; //loop variables
int k = 0;
int l = 0;
cout << "Number of bars in code (between 1 and 21): " ;
cin >> b;
char *arraychars = new char[b]; //barcode as w's and n's
int *arrayint = new int[b]; //whole barcode as ints
while (b <= 21 && b >= 1) //b is in range
{
for (i=0; i<b; i++)
{
cout << "Enter character (w for wide, n for narrow): " << endl;
cin >> arraychars[i];
}
for (k=0; k<b; k++)
{
if (arraychars[k] == 'w')
arrayint[k] = 1;
else if (arraychars[k] == 'n')
arrayint[k] = 0;
else
break;
}
for (l=0; l<b; l++) //prints
cout << arrayint[l] ;
break; //exits loop
}
return 0;
}
否则,您的变量b取值不明确。
你不知道数组的大小
相关文章:
- 为"adjacent"变量赋值时出现问题
- C++中的赋值发生,尽管右侧出现异常
- 用C++中的sscanf赋值
- 为std::string的某个索引赋值
- 重载Singly Linked List中的赋值运算符
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- gtest_使用setargpointee在函数中赋值
- 非常量变量只读位置的赋值
- 使用赋值运算符重载从类中返回jobject
- C++数据文件、数组和计算赋值
- 为什么在使用转换构造函数赋值后调用C++类的析构函数?
- 全局作用域中函数指针的赋值
- 错误:在为指针赋值时,void值没有被忽略
- 标准库类型的赋值运算符的引用限定符
- 关于 c++ 函数中指针赋值的简单问题
- 复制构造函数、赋值运算符C++
- 标准::变体的赋值运算符
- cin >> int 给定一个字符串将 int 赋值为 0
- if 子句中的赋值不起作用
- C++二进制条形码赋值