עבור לתוכן

שימוש במשתנה אחד כדי לפתוח כמה קבצים בC++

Featured Replies

פורסם

שלום אנשים

מנסיון שלי, כשאני משתמש במשתנה ifstream מהספרייה fstream, לא מספיק לסגור את הקובץ ולפתוח מחדש כדי להשתמש שוב במשתנה לקריאה מקובץ אחר

file.open(fileName);
file.close

זה לא מספיק

מה עוד צריך?

ואם אני עושה file.close לקובץ שלא פתוח, זה יעשה בעיות?

פורסם

קמפלתי כרגע קוד דומה, וזה דווקא כן עובד, לפחות כך זה נראה.

#include<fstream>
using std::ifstream;
int main()
{
ifstream input;
input.open("Test.txt");
input.close();
input.open("Test2.txt");
input.close();
return 0;
}

פורסם
  • מחבר

סליחה, לא הסברתי את עצמי מספיק טוב: אני לא יכול לקרוא מהקובץ השני אחרי שסיימתי לקרוא מהראשון אם אני משתמש באותו משתנה כדי לפתוח את 2 הקבצים

פורסם

בדקתי את זה, ואם אתה מתכוון לכך שאתה לא יכול לקרוא מהקובץ השני, אלא הוא מיד מקיים- 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(), שאמורה "לנקות את החוצץ".

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים