다음 코드를 실행하려고합니다. scanf가 두 번째 인수를 읽지 않습니다.
는 I는scanf
함수
0
및
30
및
@
로 시작하는 세 번째 문자열의 첫 두되는 정수로, 세 가지 입력 받아 싶다.
프로그램이 잘 컴파일되지만 좌표 및 관련 @
심볼을 입력하려고하면 y
좌표에 0
이 표시됩니다.
왜 이런 일이 일어나는 지 또는 내가 고칠 수있는 조치를 아는 사람이 있습니까? 아래 코드
#include <stdio.h>
int main(){
int grid[30][30];
int i, j;
for(i=0; i<30;i++){
for(j=0; j<30;j++){
grid[i][j]='.';
}
}
int x_coord;
int y_coord;
char type[2];
scanf("%d %d %s",&x_coord,&y_coord,type);
/*added extra whitespace*/
printf("%i %i %s",x_coord,y_coord,type);
printf("\n");
grid[x_coord][y_coord]=type[1];
//end outer loop
for(i=0; i<30;i++){
for(j=0; j<30;j++){
printf("%c",grid[i][j]);
}
printf("\n");
}
return(0);
}//end main
으로 큰 액세스하여 X를 얻을 수있는'문자 유형 [2] ' – BLUEPIXY
귀하의 의견은 무엇입니까? 그리고 그것은 모두 한 줄에 있습니까? 또한 [mcve]를 제공하는 것이 좋습니다. 특히이 추적 오류를 해결하는 데 매우 도움이 될 수 있습니다. –
'scanf()'함수 군을 호출 할 때 항상 작업이 성공적으로 수행되었는지를 확인하기 위해 반환 값 (매개 변수 값이 아닌)을 확인하십시오. 게시 된 코드에서 반환 값은 3이어야하며 다른 값은 오류를 나타냅니다. '% s'형식 지정자를 사용할 때 항상 최대 길이 수정 자 (입력 버퍼의 길이보다 작은 것) – user3629249