עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[שאלה]צביעת טקסט וקליטת תו בשפת C

Featured Replies

פורסם

איך אני משנה את צבע הטקסט והרקע בחלון הדוס של הקימפול בשפת C ?

ויש תפקודה getchar(); אבל לא ניתן להזין בה ערכים (לקבוע איזה תו לקלוט) אז רציתי לשאול מה הפקודה (אם יש בכלל) שבודקת איזה תו נכלל נגיד משהו כזה ... הפקודה רק לשם דוגמא

if(presschar("esc"))
{
}

מקווה שזה מובן ... אשמח לעזרה

פורסם

getchar מחזיר ערך של התו שנקלט. אתה יכול לבדוק את הערך חזרה ולהשוות אותו למה שאתה רוצה ולפעול על פי זה.

לגבי השאלה של צבע טקסט ורקע חלון זה תלוי באיזה קומפיילר אתה משתמש.

פורסם
  • מחבר

למה הכוונה מחזיר תו ?

אני יכול לעשות

 char a[256];
a=getchar();
if(strcmp(a,"esc")==0)
{
}

?

אי אפשר לעשות שהתוכנית תרוץ בלולאה אינסופית ופשוט המשתמש יוכל להקיש איזשהו מקש מתי שמתחשק לו ואחד התנאים יקלוט ?

ואני משתמש ב dev++

פורסם

אתה יכול לעשות מה שאתה רוצה במיוחד בשפה כזו בעייתית כמו C, אבל לרוב אם אתה לא יודע מה אתה עושה אתה תקבל שטוית.

getchar מחזיר תו אחד בלבד, ולכן אין צורך להקצות מערך אלא פשוט char אחד ולהשוות אותו ישירות למה שאתה רוצה.

אם אתה רוצה לקלוט מחרוזת ולהשוות את כולה ביחד, תשתמש בפקודה scanf.

בקשר לצבעים תסתכל למטה פה:

http://www.daniweb.com/code/snippet83.html

פורסם

למיטב זכרוני, getchar עובד קצת שונה עבור מקשים מיוחדים (מקשים שאינם תווים דפיסים כמו אותיות או מספרים).

במקרה שלוחצים על מקש כזה, אז getchar מחזיר 0. אז צריך לבצע שוב getchar, בשביל לקלוט את הערך האמיתי:

int ch = getchar();
if (ch == 0)
{
ch = getchar();
// handle special characters here
}
else
{
// handle normal characters here
}

פורסם
  • מחבר

while(getchar()==1)
{
printf("bla bla");
}

עפ"י היגיון הוא אמור לכתוב bla bla באופן אינסופי עד שאני מקיש מקש ... אם כי הוא פשוט לא מבצע את זה .....

פורסם

על פי ההגיון שלך. על פי המציאות הפונקציה getchar תוקעת את התוכנית עד לקלט מהמשתמש. אם אתה רוצה, תשתמש ב kbhit בשביל מה שאתה רוצה.

פורסם

ההיגיון שלך שגוי

המספר שכתבת הוא בקוד אסקיי, והוא שווה ל :D לבן (סמיילי לבן כזה של אסקיי חח)

קיצר, אם אתה רוצה לעשות השוואות כאלה תעשה "1" או לפי קוד אסקי, שהמספר 1 שווה ל49

ובעקבות השגיאות האלה, הוא לא נכנס לך ללולאה בכלל

פורסם
  • מחבר

סבבה לא הכרתי את הפקודה הזאת .... היא יותר שימושית כי אני לא מעוניין שהוא יתקע את המסך אלא פשוט תיהיה אפשרות להקיש מקש מסויים בכל רגע ...

אני יכול להשוות את הפקודה הזאת לתו מסויים ? אני עברתי על קוד אסקי אבל הוא מחולק לבסיסים שונים אקסדצימלי בינארי HTML ועוד משהו ....

אני לא יודע איזה מהם אני צריך ... מעצה של חבר ניסיתי לשים בסיס אקסדצימלי אבל המחשב לא ממש מבין .....

if(char==8)
{
}

כמובן שלא השתמשתי במשתנה char כי זאת מילה שמורה (או לפחות נראה לי שככה קוראים לזה) אלא במשתנה אחר ... 8 זה לפי בסיס הקסדצימלי הכפתור של מחיקה .. כאילו הכפתור backspace)

מישהו יכול לתת לי דוגמא של השוואה למקש על המקלדת ? ולא לתו מסויים כי במקרה של השוואת תו אני תמיד יכול לעשות

if(char=='c')

...

נגיד למקש ה backspace תודה מראש ... לגבי שינוי הצבעים אני מצאתי את הפקודות ... אבל איך לא פקודות של הספריה conio לא ממש עובדות וצריך להגדיר אותם ...

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.