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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.06.2009, 01:33   #1
vo_sa
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 15
По умолчанию открытие файла

Код:
                        ifstream is;
                        cout<<endl<<"Name file: ";
                        cin>>name;
                        is.open(name, ios::binary);
                        if(!is.is_open())
                                {
                                        is.close();
                                        system("cls"); //очистка экрана
                                        printf("________________________________________________________________________\n\n");
                                        cout<<endl<<"Ошибка открытия файла";
                                        cout<<endl<<"Данные заносятся автоматически из файла matr_in.txt";
                                        printf("\n________________________________________________________________________\n\n");
                                        name = "matr_in.txt";
                                        is.open(name, ios::binary);
                                }
если такой фаил есть то он нормально открывает и работает. а если такого файла нету, то виснет прога. где ошибка? помогите
vo_sa вне форума Ответить с цитированием
Старый 25.06.2009, 01:48   #2
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
if(!is.is_open()){
       // is.close(); <- это закоментируй
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 25.06.2009, 01:54   #3
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

name - это char или std::string ?.
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 25.06.2009, 02:10   #4
vo_sa
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 15
По умолчанию

Код:
int matr_in(int choice3,char name[256],int &town_count,float **towns,int *way)
{
	using namespace std;
	int i=0,j=0;
    if(choice3 == 2)
		{
			ifstream is;
			cout<<endl<<"Name file: ";
			cin>>name;
			is.open(name, ios::binary);
			if(!is.is_open())
				{
					//is.close();
					system("cls"); //очистка экрана
					printf("________________________________________________________________________\n\n");
					cout<<endl<<"Ошибка открытия файла";
					cout<<endl<<"Данные заносятся автоматически из файла matr_in";
					printf("\n________________________________________________________________________\n\n");
					name = "matr_in";
					is.open(name, ios::binary);
				}
			
            town_count = 0;
            while(is.getline(name, 256))
                    ++town_count;
char это. закоментировал, всё равно ошибка
vo_sa вне форума Ответить с цитированием
Старый 25.06.2009, 09:55   #5
Victor Deltorro
Пользователь
 
Аватар для Victor Deltorro
 
Регистрация: 24.06.2009
Сообщений: 17
По умолчанию

Код:
char Data[100];
int index;
fstream is(name, std::ios::in|std::ios::binary);
if(!is) { 
   std::cout<<"Error";
   return 1;
}
is.read((char *) Data, sizeof Data)
for(index = 0; index < 100; index++){
std::cout<<Data[index];
}
Таким образом он прочитает у тебя файл в массив Data затем выведет его на экран...
PS, я писал это в текстовом редакторе, если что подкоректируй!!!, я думаю смысл ясен.
Our span of life is brief, but is long enough for us to live well and honestly...

Последний раз редактировалось Sazary; 25.06.2009 в 15:54.
Victor Deltorro вне форума Ответить с цитированием
Старый 25.06.2009, 11:10   #6
vo_sa
Пользователь
 
Регистрация: 29.10.2008
Сообщений: 15
По умолчанию

Код:
			char Data[100] = "22";
int index;
fstream is(name, std::ios::in|std::ios::binary);
if(!is) 
{ 
	std::cout<<"Error";

	is.read((char *) Data, sizeof Data);
	for(index = 0; index < 100; index++)
	{
		std::cout<<Data[index];
	}
}
я так написал. т.е. если нету файла с именеме name (этой переменой не присваивал имя) то откроет файл "22"
и при запуске программы пишет "Error22"
vo_sa вне форума Ответить с цитированием
Старый 25.06.2009, 11:16   #7
Victor Deltorro
Пользователь
 
Аватар для Victor Deltorro
 
Регистрация: 24.06.2009
Сообщений: 17
По умолчанию

Cкинь мне на почту весь код... Или хотя бы тех фенкций куда передаются параметры файла?
victor.deltorro@pisem.net
Our span of life is brief, but is long enough for us to live well and honestly...
Victor Deltorro вне форума Ответить с цитированием
Старый 25.06.2009, 11:23   #8
Victor Deltorro
Пользователь
 
Аватар для Victor Deltorro
 
Регистрация: 24.06.2009
Сообщений: 17
По умолчанию

И еще, зачем ты загнал функцию открытия в условие If ?) и присвоил массиву значение 22 ?)
Our span of life is brief, but is long enough for us to live well and honestly...
Victor Deltorro вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие файла и создание графика на основе чисел из файла Simon..14 Общие вопросы C/C++ 8 09.06.2009 10:18
Открытие файла Messir_Leonard Win Api 2 09.04.2008 19:33
Открытие файла Veiron Общие вопросы Delphi 2 27.02.2008 03:12
Открытие файла KillbrumX Помощь студентам 5 02.02.2008 20:50