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;
}
这里输入它把把开头的空格屏蔽掉了,怎么办