Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Открытие файла 
V
    Опции темы
anonym
Дата 5.8.2007, 11:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 27.11.2006

Репутация: нет
Всего: 3



Задача проста до невозможности. Открыть текстовый файл, прочитать из него данные. Если файл не существует, вывести сообщение об ошибке. Нашёл такой пример. 
Код

#include <iostream.h>
#include <fstream.h>

int main()
{    
    ifstream input("c:\\input123.txt");    
    if (!input)
    {
        cout << "File not found" << endl;
        return 1;
    }
    // чтение
    return 0;
}

При обращении к несуществующему файлу ничего не выводится. Как сделать, чтобы это работало?

Это сообщение отредактировал(а) anonym - 5.8.2007, 11:54
PM MAIL   Вверх
Dronchik
Дата 5.8.2007, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



Код

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>

int main()
{        
    FILE * a;
    if((a=fopen("c:\\input123.txt","rt"))==NULL)
    {
        cout <<"Error archivo";
    }
    return 0;
}


Это сообщение отредактировал(а) Dronchik - 5.8.2007, 12:04


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Dray
Дата 5.8.2007, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: 2
Всего: 6



Код

#include <iostream.h>
#include <fstream.h>
int main()
{    
    ifstream input;
    if (input.open("c:\\input123.txt",  ios_base::out | ios_base::trunc) == NULL)
    {
        cout << "File not found" << endl;
        return 1;
    }
    // чтение
    return 0;
}



--------------------
忍者

user posted image
PM MAIL   Вверх
Dronchik
Дата 5.8.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



Можно и так


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
anonym
Дата 5.8.2007, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 27.11.2006

Репутация: нет
Всего: 3



Dronchik, хмм... выводит следующие ошибки

error C2065: 'FILE' : undeclared identifier
error C2065: 'a' : undeclared identifier
warning C4552: '*' : operator has no effect; expected operator with side-effect
error C2065: 'fopen' : undeclared identifier

Dray

error C2653: 'ios_base' : is not a class or namespace name
error C2065: 'out' : undeclared identifier
error C2653: 'ios_base' : is not a class or namespace name
error C2065: 'trunc' : undeclared identifier
error C2120: 'void' illegal with all types
 smile 

Это сообщение отредактировал(а) anonym - 5.8.2007, 12:13
PM MAIL   Вверх
Dronchik
Дата 5.8.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



#include <fstream.h>
#include <stdio.h>

добавь это


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
anonym
Дата 5.8.2007, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 27.11.2006

Репутация: нет
Всего: 3



Dronchik, спасибо  smile  теперь пошло
PM MAIL   Вверх
Dronchik
Дата 5.8.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



Всегда пожалуйста.
Не забудь поставить "вопрос решён"


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Xenon
Дата 5.8.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



На мой взгляд лучше проверять возвращаемое значение std::ifstream.is_open() ... Нагляднее как минимум smile


--------------------
user posted image  
PM MAIL   Вверх
Dronchik
Дата 6.8.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



Возможно


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
Rockie
Дата 6.8.2007, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



Первый пример тоже абсолютно рабочий, надо поменять
Цитата(anonym @  5.8.2007,  11:53 Найти цитируемый пост)
#include <iostream.h>
#include <fstream.h>

на
Код

#include <iostream>
#include <fstream>

using namespace std;

 



--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
anonym
Дата 6.8.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 27.11.2006

Репутация: нет
Всего: 3



Rockie, респект  smile  Я собственно это и хотел услышать  smile  Мда... не думал, что в С++ настолько всё тонко...
PM MAIL   Вверх
Dronchik
Дата 7.8.2007, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Звукач ёмаё
**


Профиль
Группа: Участник
Сообщений: 451
Регистрация: 1.5.2007

Репутация: 0
Всего: 37



В С++ для решения проблемы есть много вариантов. ИМХО.


--------------------
Вместо слов делай дело, от которого ты фанатеешь. (с)

PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1141 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.