פורסם 2012 במאי 1713 שנים גילוי נאות: התלבטתי רבות אם לפתוח את האשכול בפורום תכנות או בפורום זה, והחלטתי בסוף שזו בעיה במערכת ההפעלה ולא בשפהולכן אתייעץ אתכם :-)אני לומד לתכנת בשפת C בסביבת העבודה של Microsoft Visual C++ Express '10ואני לא מצליח לדמות שליחה של EOF בתוכניות שאני כותב.שלחתי את הקוד לחבר אחר שאצלו הכל עובד פיקס.יש למישהו מושג איך אפשר לטפל או להתחיל לאבחן את הבעיה?תודה.
פורסם 2012 במאי 1713 שנים מחבר ממש כך, הפעלת התוכנית הבאה: #include <stdio.h>main() { int c, i, j, k; int length[20]; for (i = 0; i <= 20; i++) length[i] = 0; for (j = 0; j <= 20; ++j) { while ((c = getchar()) != EOF) { if (c != ' ' || c != '\n' || c != '\t') ++length[j]; if (c == EOF) break; } } for (k = 0; k <= 20; k++) printf("Word %d : %d", k+1, length[k]);printf("All good baby...");return 0;} נראית כך:
פורסם 2012 במאי 1713 שנים יש לך באגים בתכנית. לדוגמה, אתה חורג מגבולות המערך.חוץ מזה, ניסית לדבג את התכנית כדי לראות מה היא עושה בדיוק?
פורסם 2012 במאי 1713 שנים מחבר ובכל זאת, גם בתוכניות פשוטות הרבה יותר אני לא מצליח לשלוח EOF.#include <stdio.h>main() { int c; while ((c = getchar()) != EOF) { putchar(c); } return 0; }
פורסם 2012 במאי 1713 שנים צודק, מחיפוש באינטרנט נראה שזו בעיה מוכרת.תנסה לרדת שורה ואז לעשות ctrl+Z (זה לא פתרון מושלם, אבל אנשים טוענים שזה עובד).
פורסם 2012 במאי 2813 שנים בגלל זה הצעתי את זה:תנסה לרדת שורה ואז לעשות ctrl+Z (זה לא פתרון מושלם, אבל אנשים טוענים שזה עובד).
פורסם 2012 ביוני 1113 שנים מחבר מתנצל על ההעלמות, הקשת CTRL+Z בשורה חדשה נותנת את התוצאה הבאה, שהיא כמובן לא ה-OUTPUT שאמור להופיע בעת קבלת EOF. אני ממש ממש טירון בתכנות בכלל ו-C בפרט, למה התכוונת כשהצעת לדבג את התוכנית?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.