为什么我输出不了字符(关键词-char)

为什么我输出不了字符


#include<bits/stdc++.h>
using namespace std;
const int N=32767;
int n,m;
char lei[N][N];
int dx[8]={0,0,-1,1,-1,1,-1,1};
int dy[8]={1,-1,0,0,1,1,0,0};
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>lei[i][j];
            cout<<lei[i][j];
        }
    }/*for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(lei[i][j]=='*'){
                cout<<'*';
            }
        }cout<<endl;
    }*/
    
    return 0;
}

需要先输入n和m的值,然后再输入一行整数,接着才会将这行整数输出出来。

测试代码如下:


#include<bits/stdc++.h>
using namespace std;
const int N=32767;
int n,m;
char lei[N][N];
int dx[8]={0,0,-1,1,-1,1,-1,1};
int dy[8]={1,-1,0,0,1,1,0,0};
int main(){
    cin>>n>>m; // 先输入n和m的值 
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>lei[i][j]; // 接着输入一行整数 ,或者直接一行输入所有行列的整数,接着就会输出全部输入的整数 
            cout<<lei[i][j]<<" ";  //然后才会显示这行整数 
        }
        cout<<endl;
    }/*for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(lei[i][j]=='*'){
                cout<<'*';
            }
        }cout<<endl;
    }*/
    
    return 0;
}

img

【以下回答由 GPT 生成】

这段代码的问题在于没有正确的设置数组lei的大小,导致数组越界。在C++中,数组是从0开始索引的,而不是从1开始。所以,for循环应该从0开始,并且结束条件应该是小于nm,而不是小于等于。同时,数组lei的大小应该根据输入的nm决定,而不是固定为32767。另外,在使用cout输出字符时,需要将字符类型转换为整型,否则输出的将是字符对应的ASCII码值。下面是修改后的代码:

#include <bits/stdc++.h>
using namespace std;
const int N = 100;
int n,m;
char lei[N][N];
int dx[8]={0,0,-1,1,-1,1,-1,1};
int dy[8]={1,-1,0,0,1,1,0,0};
int main(){
    cin>>n>>m;
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>lei[i][j];
            cout<<static_cast<int>(lei[i][j])<<" ";
        }
        cout<<endl;
    }

    /*for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            if(lei[i][j]=='*'){
                cout<<'*';
            }
        }cout<<endl;
    }*/

    return 0;
}

请注意,为了更好地理解问题所在,修改后的代码将字符转换为整型输出,以显示字符对应的ASCII码值。如果您想输出字符本身,请将static_cast<int>(lei[i][j])改为lei[i][j]



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^