なぜこのプログラム表示一見ランダムな文字?(C++)
-
05-09-2019 - |
質問
"と言ってもランダムにおいても、同時に、
#include<iostream>
using namespace std;
int main()
{
char box[10][10];
for(int i=-1;i<11;i++)
{
cout<<"---------------------"<<endl<<"|";
for(int j=0;j<10;j++)
{
cout<<box[j][i]<<"|";
}
cout<<endl;
}
intx;cin>>x;
return 0;
}
出力シリーズの国際文字、すべて""を理解するためには、単にその取得しいpi、スペインの逆問いること。良くごきげんよう、トメ子です足のプログラムアクセスをcharとして初期化されていないものはなぜ特定の価値を特定の記号のASCII値の符号を持っている場合ASCII値)を入手したいので、記号なglitchingっかかるのか?
解決
あなたのループ私は意味がない上...
for(int i=-1;i<11;i++)
あなたがここにボックスを参照するとき、これは、2つの有効でないインデックス、-1および10をヒットします。
cout<<box[j][i]<<"|";
これは、他のループ状<10、0でなければならない。
また、あなたは何にでもボックスの内容を初期化していないので、あなたは初期化されていないメモリを印刷しています。あなたが何かを取り出すことができる前に、あなたの「箱」の中に何かを配置する必要があります。
自体はおそらくASCIIを拡張しているシンボルは、あなたが任意の拡張ASCIIテーブルを介してそれらを取得することができます。 この1 のは、Googleで最初に思い付きました。たとえば、あなたが行うことができます:
cout << "My extended ascii character is: " << (char)162 << endl;
クレイジー国際Oを取得します。
他のヒント
同じ理由でその
#include <iostream>
using namespace std;
int main()
{
int x;
cout << x;
}
は、ランダムな値が表示されます。未初期化変数(または配列)は、ごみを含んでいます。
(I = -1 int型、iが11 <; iは++)のための
その行が疑わしいです。 -1〜10? 9から0である必要があります。
ASCIIコードである
(int)(box[j][i])
あなたは0から255までのコードとASCII-文字です通常char
sを印刷します。
wchar_t
sを印刷するときに、同じメモリが他の文字と解釈されます。
あなたのループは0 [にする必要があります。 10 [しないで[-1。 11 [
の記号により表示されるプログラムに依存:
- るコンテンツをそっくりのuninitialised変数
- ロケールのコンピュータまたはエンコード用です。
Unicode参照いただくと最高のソースを識別するコードに必要な表示は特にない。
と考えるユーザーは同一エンコーディング(またはフォントの正しい記号)"に設定されています。だからチェックの現在のロケールは力の一つに固有の出力を出力を描画します。