כותב |
|
Guy אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 30 March 2007 בשעה 14:16 | | IP רשוּם
|
|
|
|
שלום רב לכולם!
אני רוהנ לכתוב תכנית שבה ישנה ללואת FOR שאמורה להפסיק את הלולאה לפי דרישת המשתמש.
ניסיתי :
for (i=0;i!=(EOF);i++i
ה I בסוף כיוון שלא הצלחתי לסגור את הסוגריים - הם קפצו לצד שני
תודה על העזרה!
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 30 March 2007 בשעה 14:53 | | IP רשוּם
|
|
|
|
זה "קצת" לא ברור.
איזה שפה אתה עובד?
מה זה EOF, קבוע?
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 30 March 2007 בשעה 15:46 | | IP רשוּם
|
|
|
|
אוקי ראיתי בכותרת עכשיו שאתה מדבר על C...
אז עכשיו רק אני צריך לדעת מה יש בתוך הלולאה... -.-
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
Guy אורח
הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין הודעות: 12647
|
נשלח בתאריך: 30 March 2007 בשעה 16:17 | | IP רשוּם
|
|
|
|
קודם כל תודה
בלולאה יהיו שני מונים שיספורו כמה מהמספרים חיוביים וכמה שליליים - וכשיוצאים מהלולאה הוא ידפיס את הערכים של המונים.הבעיה היא שנתבקשתי לצאת מהלולאה ע"י cntrl^d
שזה בעצם end of file .
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 31 March 2007 בשעה 20:17 | | IP רשוּם
|
|
|
|
אבל האם אתה קולט את הקלט של המשתמש לתוך I ?
נ.ב אני מניח שהתנאי שלך נכון, כי למען האמת לא התנסיתי בו...נסה בתור התחלה לעשות את זה כשלוחצים על איזה שהוא תו, סתם שנהיה בטוחים בעניין :)
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
Guyke משתמש מתחיל
הצטרף / הצטרפה: 30 March 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 34
|
נשלח בתאריך: 31 March 2007 בשעה 21:57 | | IP רשוּם
|
|
|
|
OK ניסיתי עם אות מסויימת וזה עובד - אולי תדע לאן להפנות אותי כי באתר לא מצאתי פתרון...
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 31 March 2007 בשעה 22:21 | | IP רשוּם
|
|
|
|
עכשיו תנסה לראות מה צירוף המקשים CTRL+d מחזיר לך...(בנה תוכנית קטנה לשם כך....)
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
Guyke משתמש מתחיל
הצטרף / הצטרפה: 30 March 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 34
|
נשלח בתאריך: 31 March 2007 בשעה 22:55 | | IP רשוּם
|
|
|
|
חיפשתי וחפרתי אבל לא הצלחתי למצוא מה CTRL+D מחזיר.....
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 31 March 2007 בשעה 23:19 | | IP רשוּם
|
|
|
|
קוד:
... void main() { char a = getch(); printf("%d",a); //שהמסך לא ייסגר, ותוכל לראות את התוצאה... getch(); }
|
|
|
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
Guyke משתמש מתחיל
הצטרף / הצטרפה: 30 March 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 34
|
נשלח בתאריך: 01 April 2007 בשעה 00:10 | | IP רשוּם
|
|
|
|
הבנתי את הכוונה שלך ,רשום שהוא מחזיר '4' - משראיתי גם בwatch -אבל אל הצלחתי ליישם את זה בתכנית ....הנה משניסיתי:
while (x!='4')
scanf( "%d",&x);
if (x>0)
j++;
else
k++;
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 01 April 2007 בשעה 01:18 | | IP רשוּם
|
|
|
|
למה אתה שם את 4 בגרשיים :? 4 זה מספר לא תו...
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
Guyke משתמש מתחיל
הצטרף / הצטרפה: 30 March 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 34
|
נשלח בתאריך: 01 April 2007 בשעה 10:24 | | IP רשוּם
|
|
|
|
כן - אבל אם אני ישים את המספר 4 אז ברגע שהמשתמש יקיש 4 - הוא ייצא מהלולאה...
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 01 April 2007 בשעה 12:29 | | IP רשוּם
|
|
|
|
לא.
שים לב שאתה קולט מספר (שאגב עדיך לך להשתמש ב-getch ולא ב-SCANF אבל איך שבא לך). לכל תו יש ערך מספרי...את הערך המספרי של התו מקבלים פשוט ע"י הוספת גרשיים.
כלומר:
קוד:
.. void main() { char x = 'a'; char y = 64;
printf("%d",&x); // will print: 97 printf("$d",&y); // will print: 64 printf("%c",&x); // will print: a printf("$c",&y); // will print: Aa }
|
|
|
מקווה שהבנת.
נ.ב הקוד למעלה לא הבכרח עובד, עבר זמן לא מועט מאז שתכננתי משהו ב-C :) אבל אני מקווה שהרעיון ברור :)
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
Guyke משתמש מתחיל
הצטרף / הצטרפה: 30 March 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 34
|
נשלח בתאריך: 01 April 2007 בשעה 14:02 | | IP רשוּם
|
|
|
|
תודה רבה!
הבנתי את הרעיון - מה שאני רשמתי ועבד : while x!=(EOF)
ואז ב CTRL+Z הוא יוצא .
חוץ מזה אתה יכול להסביר לי מה ההבדל בין SCANF לGETCH?
|
חזרה לתחילת העמוד |
|
|
SBD פורומיסט על
הצטרף / הצטרפה: 13 January 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 1194
|
נשלח בתאריך: 01 April 2007 בשעה 18:37 | | IP רשוּם
|
|
|
|
SCANF הוא יותר כללי עם הרבה יותר אפשרויות וכאלה. והדבר העיקרי הוא שצריך ללחוץ אנטר לסיום הקלט.
getch הוא לקליטת תו בודד ויחיד. ברגע שהמשתמש מקליד משהו הוא סיים את העבודה שלו....בלי אנטר ובלי שום סיכוים נוספים.
לפעמים צריך את זה ולפעמים את השני, הכל משתנה לפי הצורך, במקרה הזה GETCH נראה לי יותר נוח, תחליט אתה :)
שמח שיכלתי לעזור, שי.
__________________ ~ Nobody Is Perfect, I'm Nobody ~
פורומים
|
חזרה לתחילת העמוד |
|
|
Guyke משתמש מתחיל
הצטרף / הצטרפה: 30 March 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 34
|
נשלח בתאריך: 01 April 2007 בשעה 20:11 | | IP רשוּם
|
|
|
|
תודה שי!
|
חזרה לתחילת העמוד |
|
|