Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2010, 11:16   #11
ReaktiV
Пользователь
 
Аватар для ReaktiV
 
Регистрация: 25.07.2008
Сообщений: 82
По умолчанию

Хотя нет при вот такой проверке
Код:
int chislostr ()
{int d;
if(!inStream)
    {
        cout<<"file not open1";
      }
	const int len=50;
	char line[len];
inStream.open(nf,ios::in);

     
d=0;
while(inStream.getline(line,len)){
d=d+1;
}
inStream.close();
return(d/5);
}
Код:
void input_file(plane q[])
{int n,i;
const int len=50;
char line[len];
n=chislostr();
if(!inStream)
    {
        cout<<"file not open2";
      }
if(n==0){ CharToOem("В БД нет записи\n", str);
    cout << str;}
if(n!=0){inStream.open(nf,ios::in);{
if(!inStream)
    {
        cout<<"file not open3";
      }
for(i=0;i<n;i++){
inStream>>q[i].name;
inStream>>q[i].rl;
inStream>>q[i].gp;
inStream>>q[i].prot;
inStream>>q[i].kp;
}}
inStream.close();
}
}
Код:
void output(plane q[])
{int i,n;
n=chislostr();
if(!inStream)
    {
        cout<<"file not open4";
      }
if(n!=0){
cout.setf(ios::left);

cout<<"naimenovanie    raion linii     god puska     protyazhennost'	 kollichestvo poezdov\n";
for(i=0;i<n;i++){
cout.width(18); cout<<q[i].name;
cout.width(15); cout<<q[i].rl;
cout.width(18); cout<<q[i].gp;
cout.width(20); cout<<q[i].prot;
cout.width(15); cout<<q[i].kp<<"\n";
}
}
}
Выдал File not open2 File not open3 File not open1 File not open4

Почему то после первого открытия начинаются проблемы.

никто случайно не знает в чём проблема?

Последний раз редактировалось Stilet; 11.05.2010 в 11:45.
ReaktiV вне форума Ответить с цитированием
Старый 11.05.2010, 11:45   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может там где у тебя открывается поток, он на самом деле уже открыт или позиция за концом файла?
не будет ли лучше его локализовать чтение в функцию:
Код:
int chislostr (){
	int d;
	const int len=50;
	char line[len];
    ifstream inStream(nf,ios::in);
    d=0;
	while(inStream.getline(line,len)){	d=d+1;}
	inStream.close();
return(d/5);
}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.05.2010, 12:00   #13
ReaktiV
Пользователь
 
Аватар для ReaktiV
 
Регистрация: 25.07.2008
Сообщений: 82
По умолчанию

Т.е. везде прописать ifstream inStream? во всех функциях, а из начала убрать?

Ух ты добавил эту строчку ifstream inStream(nf,ios::in);
в число строк и всё заработало. Можно поподробнее что это была за проблема?

Последний раз редактировалось Stilet; 11.05.2010 в 12:04.
ReaktiV вне форума Ответить с цитированием
Старый 11.05.2010, 12:03   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Можно поподробнее что это была за проблема?
пуф....
Ну я даже не знаю что сказать... Я это выдрал из хелпа Borland C++, в детали не вникал, работало как часы, так что...
Я не знаю что делает метод open, никогда им не пользовал.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.05.2010, 12:21   #15
ReaktiV
Пользователь
 
Аватар для ReaktiV
 
Регистрация: 25.07.2008
Сообщений: 82
По умолчанию

ifstream inStream везде прописать или только где число строк?
ReaktiV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли открыть exe-файл в ms visual 2008?(c++) Александр Елис Visual C++ 5 30.09.2009 10:28
Как открыть файл? Xnarcotic Общие вопросы Delphi 4 14.06.2009 11:51
не возможно открыть диски Vladya Компьютерное железо 4 27.04.2009 20:15
Открыть файл dbClick-ом; Altera Помощь студентам 1 03.02.2008 15:40