while (1) {
palindrome = my_string_init_default();
while (1) {
ch = getc(stdin);
if (ch == '\n') {
break;
}
else {
continue;
}
palindrome->push_back(palindrome, ch);
}
if (is_palindrome(palindrome)) {
printf("Yes \n");
}
else {
printf("No \n");
}
palindrome->destroy(&palindrome);
}
return 0;
}
기본적으로 텍스트가 회문인지 여부를 확인하려고합니다. 코드의 해당 부분은 여기에 표시되지 않으며 완벽하게 작동합니다. 내가하려고하는 것은 라인 끝이있을 때까지 입력 내용을 읽는 것입니다. 그런 다음 해당 라인이 회문인지 아닌지 확인하는 문자열을 고려하십시오. 프로그램을 종료하는 대신에 다음 줄로 가야하고 EOF에 도달 할 때까지 계속 반복해야합니다. 내 버퍼 위치를 엉망으로 만들지 않고 여기 어떻게해야합니까? 여기서 fseek을 사용할 수 있습니까?stdin에서 버퍼 위치를 엉망으로 만들지 않고 중첩 루프 사용
'stdin' 관리와 관련하여 특별한 일을해야합니다. (문제가 그 문제와 관련이없는 것처럼 보입니다.) –
'scanf '를 사용할 수없는 이유가 있습니까? (예를 들어'char'을 읽지 않고 콘솔에서'string'을 한 번 읽는다.) – ryyker