私はコンピュータサイエンスのための入門コースにいるよ、とC++を使用しました。C++のバイナリバーコードの割り当て
バイナリ、コード39、コード48の異なる「バーコードスキャナ」を作成します。これはバイナリ部分のコードで、バーコードは黒と白の別のストライプで構成されています。または狭い。広いバーは、割り当てのためのガイドラインである0
として1として解釈され、狭いバーである:
- コード(奇数の整数1≤bにおけるバーの数を示す数bを読む≤ 21)
- 読むbの文字は、1
- 時に各文字が広いため、WまたはN狭い
- ワイドバーのいずれかになります1、細いバーが0
- されているにバーコードを変換するにその等価n umberを表示して番号を表示する
私のコードは大丈夫だと感じましたが、6桁以上は返されません。私が7と21の間に何かをbと入力すると、それでも多くの整数が求められますが、そのうちの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;
}
配列のサイズよりも、それ以上を印刷する方法を知ることができない* 1 *桁、与えられたあなたは、次のものがある任意の数字を出力した後、 '破ること。 'ループを終了します。 –
これは、あなたが抱えている問題(偶然でない限り)とは関係ありませんが、2番目のループは上限を 'i'としています。最初のループ 'i'が' b'と同じですが、実際には 'b'を使うべきです。また、排他的なもの( 'k
あなたの出力はバイナリになります。これは実際にあなたがしなければならないことですか、バイナリの0と1を整数のビットとして扱い、その整数を10進数で出力することになっていますか? –