פורסם 2009 ביולי 1616 שנים שלום אנשיםמנסיון שלי, כשאני משתמש במשתנה ifstream מהספרייה fstream, לא מספיק לסגור את הקובץ ולפתוח מחדש כדי להשתמש שוב במשתנה לקריאה מקובץ אחרfile.open(fileName);file.closeזה לא מספיקמה עוד צריך?ואם אני עושה file.close לקובץ שלא פתוח, זה יעשה בעיות?
פורסם 2009 ביולי 1616 שנים קמפלתי כרגע קוד דומה, וזה דווקא כן עובד, לפחות כך זה נראה.#include<fstream>using std::ifstream;int main(){ ifstream input; input.open("Test.txt"); input.close(); input.open("Test2.txt"); input.close(); return 0;}
פורסם 2009 ביולי 1616 שנים מחבר סליחה, לא הסברתי את עצמי מספיק טוב: אני לא יכול לקרוא מהקובץ השני אחרי שסיימתי לקרוא מהראשון אם אני משתמש באותו משתנה כדי לפתוח את 2 הקבצים
פורסם 2009 ביולי 1716 שנים בדקתי את זה, ואם אתה מתכוון לכך שאתה לא יכול לקרוא מהקובץ השני, אלא הוא מיד מקיים- infile.eof()==true, אז הפתרון שאני מצאתי הוא לרוקן את infile, ע"י הפונקציה clear().אני מצרף קטע תוכנה קצר, שמדגים את זה:#include<iostream>#include<fstream>using std::cout;using std::fstream;int main(){ ifstream infile("example.dat"); char STR[9]; infile>>STR; while(!infile.eof()) { cout<<STR<<endl; infile>>STR; } infile.close(); system("pause"); infile.clear(); infile.open("example2.dat"); infile>>STR; while(!infile.eof()) { cout<<STR<<endl; infile>>STR; } infile.close(); system("pause"); return 0;}שים לב לפונקציה clear(), שאמורה "לנקות את החוצץ".
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.