while ( 1 ) { scanf("%d",&num); scanf("%c",&x); if ( x == 'd') break; } return 0;
|
אז התשובה היא לא, כדי ששיטה כזאת תעבוד אתה צריך שהקלט יגיע בדיוק בצורה שאתה רוצה. כי אם קיבלת את התו d ראשון אז הוא ייכנס ל num ואז התנאי לא יעבוד.
יש כל מיני דרכים להתגבר על זה אבל אני צריך להבין מה אתה בדיוק רוצה לעשות בחלק האחר של הלולאה... אם יש לך רק פקודת קלט אחת שאם זה מספר אתה עושה משהו ואם זה d אתה עושה משהו אחר אז case פשוט יפתור את הבעיה.
אם יש לך הרבה קלטים אז צריך לחשוב על דרך אחרת.. אני לא כל כך יודע מה אתה למדת ומה לא למדת ולכן קשה לי להמליץ על דרך.. אפשר לעשות את זה בעזרת הצצה לבאפר של המקלדת ולראות איזה תו מחכה שם, אפשר לעשות את זה עם פסיקות חומרה של המקלדת.. יש מליון דרכים.
קאש-באק ישראלי: https://www.cashback.co.il/?uref=33330
קאשבק לAsos ואמזון דרך Ebates: https://goo.gl/MX87Y7 - מקבלים 10$ לאחר שימוש ראשון.