13-03-2010, 00:50
|
|
|
|
חבר מתאריך: 21.12.04
הודעות: 30,021
|
|
הקובץ הוא הקובץ שאתה פותח בתוכנית שלך... נגיד שכתבת תוכנית שמקבלת כקלט קובץ txt מסויים, ובודקת כמה פעמים מופיעה בו המילה "boze"...
אז אתה פותח את הקובץ לקריאה בתוכנית שלך, ומתחיל לרוץ על הקובץ (לטייל, כפי ששימי אמר) בחיפוש אחרי ה bozeים שמופיעיםבו. אתה כמובן תרצה לרוץ בלולאה עד שיגמר הקובץ.
איך תדע שנגמר הקובץ?
אחת השיטות היא לרוץ בלולאה עד שאתה מזהה את התו המיוחד EOF. ברגע שהגעת לתו הזה - יש לך סימן שנגמר הקובץ ואתר יכול לצאת מהלולאה ולהפסיק את החיפושים:
קוד PHP:
#include <iostream> using namespace std;
int main() { char tav, tavim[5]; int count = 0; FILE* fPtr = fopen ("boze.txt", "r"); if (!fPtr) { cout << "No such file 'boze.txt'"; cin >> tav; return 0; } do { tav = fgetc (fPtr); if (tav == 'b') { fgets (tavim, 4, fPtr); { if (!strcmp (tavim, "oze")) { count++; } } } } while (tav != EOF); cout << "the word 'boze' was found " << count << " times in boze.txt\n"; cin >> tav; return 0; }
שים לב כי הלולאה תמשיך לרוץ על הקובץ כל עוד לא סרקנו את EOF שמסמן את סוף הקובץ. ברגע שנגיע ל EOF - נצא מהלולאה והתוכנית תסתיים (אם אתה רוצה לבדוק את התוכנית, צור לך קובץ boze.txt ביחד עם הקובץ המקומפל ותכתוב שם כמה פעמים boze שאתה רוצה - התוכנית תציג את מספר הפעמים ש boze מופיע בקובץ).
קצת על EOF באתר cplusplus:
http://www.cplusplus.com/reference/clibrary/cstdio/EOF/
שם יש גם לינקים לשימוש בפונקציות כמו feof אשר בודקות בצורה יותר נוחה האם הגענו לסוף קובץ.
|