ifstream inFile;
.
.
.
//inFile.open("C:\\Clients.dat");
inFile.open("C:\\Documents and Settings\\stimpi\\Рабочий стол\\temp\\OOP_C++\\PhoneList\\Clients.txt");
if(inFile)
{//some actions
}
else
{
//Some problems
}
Проблема открытия файла ifstream (С++)
задокументированный код открывает файл, не задокументированный
не хочет. Неужели проблема в слишком длинном пути к файлу ?
Код:
Нет. Ищите проблему в другом. Возможно проблема с правами доступа или с чем либо еще. Используйте GetLastError для диагностики ошибки.
Цитата: kot_
Нет. Ищите проблему в другом. Возможно проблема с правами доступа или с чем либо еще. Используйте GetLastError для диагностики ошибки.
да, ошибка кроется в изменении ifstream объекта в считывании файла, что повторно его использование невозможно, по крайней мере моя студия в ниже приведенном примере печатает следущее:
Код:
int main(int argc, char* argv[]) {
char *buf,*buf1;
buf = new char[50];
buf1 = new char[50];
string path("C:\\Documents and Settings\\stimpi\\Рабочий стол\\temp\\OOP_C++\\PhoneList\\Clients.dat");
ifstream in;
in.open(path.c_str());
if(!in)
cout << "Error" << endl;
else
{
while (in >> buf >> buf1)
{
cout << buf << " " << buf1 << endl;
}
in.close();
}
in.open(path.c_str());
if(!in)
cout << "Error" << endl;
else
{
while (in >> buf >> buf1)
{
cout << buf << " " << buf1 << endl;
}
in.close();
}
cin.get();
delete[] buf1;
delete[] buf;
return 0;
}
char *buf,*buf1;
buf = new char[50];
buf1 = new char[50];
string path("C:\\Documents and Settings\\stimpi\\Рабочий стол\\temp\\OOP_C++\\PhoneList\\Clients.dat");
ifstream in;
in.open(path.c_str());
if(!in)
cout << "Error" << endl;
else
{
while (in >> buf >> buf1)
{
cout << buf << " " << buf1 << endl;
}
in.close();
}
in.open(path.c_str());
if(!in)
cout << "Error" << endl;
else
{
while (in >> buf >> buf1)
{
cout << buf << " " << buf1 << endl;
}
in.close();
}
cin.get();
delete[] buf1;
delete[] buf;
return 0;
}
Код:
Иванова_Любовь_Николаевна 8-044-2568478
Петрук_Олег_Константинович 8-044-6547891
Error
Петрук_Олег_Константинович 8-044-6547891
Error
ЗЫ проблему решил переносом ifstream объекта в метод запонления списка
Т.е.
Код:
in.clear(0);
спасет отца русской демократии. :)
Используйте репутацию. Это маленькие весы под аватаром. Не захламляйте форум "сенксами" и т.п. Ну а так всегда пожалуйта ;)