[שאלה]צביעת טקסט וקליטת תו בשפת C - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


sagros

Recommended Posts

איך אני משנה את צבע הטקסט והרקע בחלון הדוס של הקימפול בשפת 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
}

קישור לתוכן
שתף באתרים אחרים

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

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

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

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

קישור לתוכן
שתף באתרים אחרים

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

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

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

if(char==8)
{
}

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

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

if(char=='c')

...

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

קישור לתוכן
שתף באתרים אחרים

ארכיון

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

×
  • צור חדש...