求助
查看原帖
求助
905133
sssscy_free_stdio楼主2023/11/15 21:01

getline输入会把开头的空格屏蔽掉吗?如果会,该怎么办

也有可能是代码的问题

代码:

#include<bits/stdc++.h>
using namespace std;
struct node{
    int x,y,t;
}s,e;
int n,m,a[110][110],vis[110][110];
string t;
int dx[]={0,1,0,-1};
int dy[]={1,0,-1,0};
void bfs(){
    if(abs(s.x-e.x)+abs(s.y-e.y)==1){
        printf("1\n");
        return;
    }queue<node>q;
    q.push(s);
    while(!q.empty()){
        node now=q.front();
        q.pop();
        int x=now.x,y=now.y,t=now.t;
        for(int i=0;i<4;i++){
            int xx=x+dx[i],yy=y+dy[i];
            while(xx>=0&&xx<=n+1&&yy>=0&&yy<=m+1&&a[xx][yy]==0){
                if(vis[xx][yy]==0){
                    if(xx==e.x&&yy==e.y){
                        printf("%d\n",t+1);     
                        return;                     
                    }vis[xx][yy]=1;
                    q.push({xx,yy,t+1});
                }
                xx+=dx[i],yy+=dy[i];
            }
        }
    }printf("0\n");
}int main(){
    scanf("%d%d\n",&m,&n);
    for(int i=0;i<n;i++){
        getline(cin,s);
        for(int j=0;j<m;j++){
            if(t[j]=='X'){
                a[i+1][j+1]=1;
            }else{
                a[i+1][j+1]=0;
            }
        }
    }for(int i=1;i<=n;i++){
    	for(int j=1;j<=m;j++){
    		printf("%d ",a[i][j]);
		}printf("\n");
	}while(1){
        scanf("%d%d%d%d",&s.y,&s.x,&e.y,&e.x);
        if(s.x==0&&s.y==0&&e.x==0&&e.y==0){
            return 0;
        }memset(vis,0,sizeof vis);
        a[e.x][e.y]=0;
        bfs();
        a[e.x][e.y]=1;
    }return 0;
}

这里输入它把把开头的空格屏蔽掉了,怎么办

2023/11/15 21:01
加载中...