이 포럼을 검색하고 있지만 검색하는 데는 여전히 문제가 있습니다. C에 대한 나의 이해는 여전히 매우 기본입니다. 저는 사용자가 입력 한 3 개의 수치 값을 취한 다음 가장 높은 수치를 계산하는 작은 프로그램을 만들고 있습니다. 나는 그것을 못 박았습니다.사용자가 입력 한 값이 숫자인지 확인하는 기본/수동 방법입니다.
이제 사용자가 정수 값만 입력하도록하고 싶습니다. 나는 prog이 특정 수치 범위 (예를 들어, 1에서 1000 사이의 숫자, 케이크 조각)까지 다시 입력하라는 메시지를 계속 표시하도록 관리했지만 충분하지는 않습니다. 각 while 루프를 사용하여 각 값을 테스트했지만 입력이 정수 유형 인 경우에만 작동합니다.
트릭은 내장 기능을 사용하지 않습니다. 그것은 수동 (미안, 가난한 단어 선택)해야합니다. char 변수를 사용하려고 x = getchar(); ASCII 값을 얻고 조건에서 테스트하지만 루프에서 작동하지는 않습니다. (while/do-while)
"for 루프"및 배열 변수를 사용해 보았지만 사용자에게 계속 묻는 데 어려움을 겪고 있습니다.
또한 scanf가 반환 한 값을 정수형이지만 올바른 C 구문의 지식 수준이 level : noob인지 테스트하려고했습니다. 내 루프가 루프되지 않거나 무한 루프됩니다. 여기
은 몇 가지 예제 코드입니다 :int x, y, z =0;
printf("Enter the first number:\n");
scanf("d", &x);
while (condition) /* Here is where I need to determine that the entered val is false */
{
printf("Wrong input. Re-enter a valid value.\n");
x =0;
scanf("%d", &x); /*user re-prompted */
}
내가 ASCII와 루프를 사용해야합니다 아이디어를 받고 있어요,하지만 난 그냥 그것을 얻을 수 없습니다. 또한 입력 된 값은 비교를 위해 함수로 전송 된 다음 반환됩니다.
누군가 나에게 조언을 해주고 몇 가지 팁을 제공해 주시겠습니까?
많은 감사
대기, 그것은 수동 수있다? 그렇다면 어떻게'scanf'를 사용하여 파싱을 할 수 있습니까? 그건'atoi','strtol' 또는 그와 비슷한 것만 큼 다를 것입니다. –
나는 scanf 만 사용하고있다. (고대예요, 사람들이 그것을 사용하지 않으려 함을 읽었습니다.)하지만 나는 아직 다른 문장들을 다루거나 이해하지 못했습니다. –
"scanf()"는 여전히 유용한 도구입니다. 그리고이 경우, 자신의 버퍼를 할당하고 파싱하는 것이 중요합니다. 중요한 것은 반환 상태를 사용하여 scanf()의 내장 검증 메커니즘을 활용하는 것입니다. – paulsm4