עזרה קטנה בC

  • פותח הנושא 5h4y
  • פורסם בתאריך

DadleFish

New member
תשים לב שכשאתה מקליד את העסק

בתוך חלון CONSOLE, אתה חייב ללחוץ ENTER כדי שה-BUFFER באמת יגיע לתוכנית שלך. הרצתי את התוכנית שלך - CTRL+Z ואחריו ENTER יצא מהלולאה כמו שצריך.
 

5h4y

New member
אי אפשר

ללחוץ על enter אחרי ה ctrl+z כי ה ctrl+z מסיים את התוכנית (החלון דוס נסגר). אגב גיליתי עוד משהו מוזר שאם אני שם system("pause"); לפני ה return אז הוא כן פועל רק שהוא מדלג על הקטע של ה printf
 

5h4y

New member
ח תראה עוד משהו

int main(void) { int a; while ((a = getchar()) != EOF) putchar(a); printf("\nend"); return 0; }​
זה לעומת זאת עובד מצויין wtf?
 

shaiis7

New member
תבין משהו

אתה משתמש בקומפילר של בורלנד ויש בו הרבה באגים אוין מה לעשות, חוץ מלמצוא דרכים חילופיות. אצלי למשל בקומפילר של בורלנד יש שגיאה בקוד: for(int i=0;i<10;i++) אבל שאני עושה int i=0; for(;i<10i++) זה עובד מצויין... מוזר מאוד!!!!!
 

selalerer

New member
אני לא יודע אם זאת הבעיה...

..נראה לי שזה יותר קשור לזה שזה רץ באמולטור (ואחד לא כלכך מוצלח). תנסה להוריד dosbox אני חושב ששם זה ירוץ לך מצויין.
 

yossi1981

New member
אין לך שום בעייה בתוכנית

זה מהדר של בורלנד ברגע שהתוכנית מסתיימת הוא מיד סוגר אותה. תרשום GETCHAR)( לפני סיום התוכנית וזהו.
 

selalerer

New member
גם אז הוא לא רואה את הend.

אם זה היה על מערכת DOS אמיתי זה היה עובד מצויין.
 

DecayCell

New member
זו לא שגיאה

האפשרות להגדיר משתנה חדש בתור הוראת ה-for היא אופציה שנוספה עם התקן C99 (משנת 1999, כפי שמרמז השם...). כשאתה מדבר על בורלנד אני מניח שאתה מתכוון ל-++Turbo C, גירסא 3, שפותח ב-1993...
 

DadleFish

New member
אם אני לא טועה,

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