gpt4 book ai didi

c++ - 为什么这个程序会显示看似随机的字符? (C++)

转载 作者:行者123 更新时间:2023-11-27 22:32:10 26 4
gpt4 key购买 nike

嗯,不是随机的,因为每次都一样,但是

#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/

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