"point % d % d"와 같은 형식으로 행을 일치 시키려고합니다. 따라서 두 개의 정수가 두 개만 필요하며 "점"은 형식 문자열에 하드 코딩됩니다. scanf의 Linux man 페이지를 읽는 것을 이해 했으므로 제대로 작동합니다.scanf 형식의 하드 코드 된 문자열
다음 코드는 scanf에 대한 첫 번째 호출이 작동하지만 다음 호출 scanf는 오류 코드와 함께 반환되며 stdin에서 더 많은 숫자를 가져 오지 않습니다 (scanf는 더 많은 입력을 기다리는 것을 차단하지 않습니다.) 표준 입력 : 이런 식으로
for (;;)
{
scanf("point %d %d", &x, &y);
printf("=> point %d %d\n", x, y);
}
, 모든 작업은 예상대로 :
int x, y;
char s[10];
for (;;)
{
scanf("%s %d %d", s, &x, &y);
printf("=> point %d %d\n", x, y);
}
내가 오해하고 수 있는지에 대한 어떤 제안?
감사합니다.
좋아, 내 문제를 해결하는 말, 고마워. 이제 scanf ("point % d % d", & x, &y);)를 "stdin"의 줄 끝 문자를 꺼내기 전에 * blank *로 호출하면됩니다. – Ricardo