나는 지금까지 프로그램의 주요 기능 (지금까지 베어 본 기능)을 작성 중이다. 지금까지는 "end"명령 만 포함 시켜서 프로그램을 종료했다. 명령이 아닌 다른 것이 입력 될 때마다 오류 메시지가 출력됩니다. 그러나 루프 내에서 더 많은 명령을 입력 했으므로 다른 것을 인식하지 못하는 것 같습니다. 저는 계수와 지수를 입력하도록 사용자에게 프롬프트 한 후 다항식을 만드는 프로그램을 작성하고 있습니다.내 프로그램이 어떻게 다른 명령을 인식하지 못합니까?
명령은 adc (계수 명령 추가)이며 공백 뒤에 계수를 나타내는 정수와 지수를 나타내는 다른 정수가있는 다른 공백을 추가해야합니다.
예 : ADC 4 5 출력 : 입력의 특정 종류의 테스트 strcmp(buf,"adc %d %d")
: 4 배^5
int main(void){
char buf[5]; //Creates string array
unsigned int choice;
printf("Command? "); // Prompts user for command
fflush(stdout);
gets(buf); //Scans the input
while(strncmp(buf, "end", 3) != 0) //Loop that goes through each case, so long as the command isn't "end".
{
switch(choice){
//Where the other cases will inevitably go
if((strcmp(buf,"adc %d %d"))== 0){
}
break;
default:
printf("I'm sorry, but that's not a command.\n"); //Prints error message if input is not recognized command
fflush(stdout);
break;
}
printf("Command? "); //Recycles user prompt
fflush(stdout);
gets(buf);
}
puts("End of Program."); //Message displayed when program ends
}
'gets (buf)'** 절대'gets'를 사용하지 마라. ** 맨 페이지조차도 말한다. 버퍼가 예상 입력에 비해 너무 작습니다. –
스위치의 사례 설명은 어디에 있습니까? –
왜 그렇게 까다로워 지나요? 그것은 항상 작동하는 것 같습니다. 그리고 내 스위치에 대한 내 인쇄 후 내 scanf 성명에 선택을 시도했지만 끝없는 루프에 계속. 솔직히 바꿀 수 없기 때문에 스위치에 더 이상 넣지 않아도되는 다양한 사례를 가지고 있습니다. – user1713221