嗯,不是随机的,因为每次都一样,但是
#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 和西类牙倒置问号之类的东西)。无论如何,我知道这是因为程序访问尚未初始化的字符,但为什么特定值会创建特定符号,符号的 ASCII 值是什么(如果它们具有 ASCII 值)以及如何在不出现故障的情况下获取符号我的程序?
最佳答案
你的 i 循环没有意义......
for(int i=-1;i<11;i++)
当您在此处引用框时,这将命中两个无效的索引,-1 和 10:
cout<<box[j][i]<<"|";
它应该像其他循环一样是 0 到 < 10。
此外,您还没有将 box 的内容初始化为任何内容,因此您正在打印未初始化的内存。你必须先把东西放进你的“盒子”,然后才能取出任何东西。
符号本身可能是扩展的 ASCII,您可以通过任何扩展的 ASCII 表找到它们。 This one首先出现在谷歌上。例如,您可以这样做:
cout << "My extended ascii character is: " << (char)162 << endl;
获得一个疯狂的国际 o。
关于c++ - 为什么这个程序会显示看似随机的字符? (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/902309/