저는 대학에서 과제물로 해산물 메뉴를 작성해야합니다. 여기서 I는 해당 코드를 제공한다 :% c 대 % s의 실질적인 차이
int main()
{
int a,d;
float c ;
char b,s,S,m,M,l,L;
printf ("\n\t\t\t\tSeafood Menu\n");
printf ("----------------------------------------------------------------------------------\n");
printf ("\t\t\t\t\t\t Dish Size\n");
printf ("Item Number\t Seafood Dish\t Small\t Medium Large\t\n");
printf ("----------------------------------------------------------------------------------\n");
printf ("\t 1\t Fried \t20.00 \t\t 40.00 \t\t 55.00\n");
//Continue with a bunch of menu here
printf (" Enter item number :");
scanf ("%d",&a);
printf (" Enter dish size (S/M/L) :");
scanf ("%s",&b);
if ((a==1)&&((b=='s')||(b=='S')))
{c=20.00;}
//continue with a bunch of condition to choose the price per dish stated in the menu
printf (" Enter dish quantity :");
scanf ("%d",&d);
printf (" Price per dish size :RM%.2f\n\n\n",c);
return 0;
}
I는 % C까지의 형식이 식별자를 변경하려고 할 때, 그것은 단지 특정 scanf와의 입력을 받아들이 멈췄다.
printf ("Enter dish size (S/M/L):");
scanf ("%s",b);
나는 이미지를 첨부하고 싶지만 내가 '두 개의 링크 떠날 것이다 : 나는 아무튼 이유에 대해 궁금
Normal, using %s: 및 abnormal, using %c
을'그렇게 할 수 있지 않다 보인다 %c
을 사용하고 %s
을 사용하면 작동하지 않습니까? 내가 입력하는 모든 것은 문자 일 뿐이다. 제발 저를 계몽하십시오.
두 변형 모두 정의되지 않은 동작을 호출합니다. 'scanf '문서와 문자와 문자 _ 문자의 차이점에 대해 읽어보십시오. C 문자열. – Olaf
'% c'와'% s'의 동작은 당신의 편리한 C 레퍼런스 매뉴얼에서 명확하게 기술되어야합니다. 편리한 C 참조 설명서가 없으면 Harbison & Steele의 [C : A 참조 설명서] (http://careferencemanual.com)를 권합니다. '% c'는 입력 스트림에서 * 단일 문자를 읽고 그것을 하나의'char' 객체에 저장합니다. '% s'는 공백이나 EOF를 볼 때까지 입력 스트림에서 문자 값의 * sequence *를 읽고 0 종료 문자열로'char'의 * 배열 *에 저장합니다. –