Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.85
Gooman
10 / 10 / 0
Регистрация: 03.10.2010
Сообщений: 350
#1

Вопрос по работе с файлами в Visual Studio - C++

04.02.2012, 11:12. Просмотров 2590. Ответов 15
Метки нет (Все метки)

Написал программу для работы с файлом в Visual Studio. Iostream подключил.
Но такие вот привычные записи, как, например,
C++
1
 ifstream fin("c:\\projects\\text1.txt", ios::in | ios::nocreate);
visual studio использовать не хочет.
На
C++
1
fin.seekg(0, ios::end);
тоже рукается, типа fin должен быть классом.
Можете подсказать, что нужно исправить / подключить, чтоб visual мог работать с такими функциями?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2012, 11:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос по работе с файлами в Visual Studio (C++):

Вопрос по работе с файлами - C++
Пока i-=2 не вставил, выводила пустую строку в результате. Почему так? Что за 2 знака перед eof() мешали? int main(int argc, char*...

Маленький вопрос по работе с файлами - C++
очень глупый к тому же) есть FILE * f=fopen(filename,"r"); FILE* F; как мне присвоить*F=*f? заранее спасибо)

Вопрос по Visual Studio 2008 - C++
Запустил программку в 11 утра сегодня. До сих пор выполняется. Надо с работы уходить домой. Думаю прийти в понедельник и посмотреть за...

Вопрос про Visual Studio 2008 - C++
Здравствуйте! Начал изучать С++ примерно 2 недели назад (читаю книгу, делаю упражнения). Пользуюсь компилятором Dev-C++, решил начать...

Работа с файлами в Visual studio 2005 - C++
Необходимо в цикле сохранить в файл очень много элементов типа double. Затем необходимо после цикла воспользоваться данными из этого файла....

Операции и функции в работе в классе с комплексными числами С++ Visual Studio - C++
Помогите пожалуйста. Написала программу, но считает и умножает комплексные числа не правильно. Раньше умножало нормально, но теперь не знаю...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
04.02.2012, 11:18 #2
1. подключить fstream
2/ Вы создаете текстовый или двоичный файл. Если двоичный, то надо писать еще ios::binary
0
Gooman
10 / 10 / 0
Регистрация: 03.10.2010
Сообщений: 350
04.02.2012, 11:23  [ТС] #3
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
1. подключить fstream
2/ Вы создаете текстовый или двоичный файл. Если двоичный, то надо писать еще ios::binary
Я использую текстовый файл.
Подключил fstream, часть ошибок исчезла, но они все равно есть.

Здесь
C++
1
ifstream fin("c:\\projects\\text1.txt", ios::in | ios::nocreate);
пишет, что "error C2039: nocreate: не является членом "std::basic_ios<_Elem,_Traits>" " и там же пишет, что "error C2065: nocreate: необъявленный идентификатор".

А на fin.close пишет ошибку "error C3867: std::basic_ifstream<_Elem,_Traits>::close: в вызове функции отсутствует список аргументов; используйте "&std::basic_ifstream<_Elem,_Traits>::close" для создания указателя на член".

Не подскажете, что нужно исправить?
0
ValeryLaptev
Эксперт С++
1041 / 820 / 48
Регистрация: 30.04.2011
Сообщений: 1,659
04.02.2012, 11:29 #4
1. Уберите nocreate
2. fin.close();

Кстати, можно писать вот так: c:/projects/file.txt - с нормальной косой, а не обратной.
1
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
04.02.2012, 13:15 #5
Цитата Сообщение от Gooman Посмотреть сообщение
ios::nocreate
откуда вы это взяли? в стандартном ios_base нет такого мода
0
Gooman
10 / 10 / 0
Регистрация: 03.10.2010
Сообщений: 350
04.02.2012, 13:16  [ТС] #6
Цитата Сообщение от retmas Посмотреть сообщение
откуда вы это взяли? в стандартном ios_base нет такого мода
Из методички взял
0
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
04.02.2012, 13:19 #7
не смотрите больше в эту методичку
и уберите ios::nocreate
0
Gooman
10 / 10 / 0
Регистрация: 03.10.2010
Сообщений: 350
04.02.2012, 13:20  [ТС] #8
Цитата Сообщение от retmas Посмотреть сообщение
не смотрите больше в эту методичку
и уберите ios::nocreate уже
Да мне как бы и не надо, она за прошлый семестр
Я уже давно убрал.
0
Том Ардер
Модератор
Эксперт по математике/физике
3742 / 2355 / 293
Регистрация: 15.06.2009
Сообщений: 4,219
04.02.2012, 13:55 #9
Цитата Сообщение от retmas Посмотреть сообщение
Цитата Сообщение от Gooman Посмотреть сообщение
ios::nocreate
откуда вы это взяли? в стандартном ios_base нет такого мода
Есть такое слово в этой букве

Используется для файлов вывода:

C++
1
2
// Убедиться, что файл уже существует
ofstream copy_file( "COPY", ios::nocreate );
или вариант:

C++
1
2
// убедиться, что файл ещё не существует
ofstream copy_file( "COPY", ios::noreplace );
0
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
04.02.2012, 14:06 #10
Цитата Сообщение от Том Ардер Посмотреть сообщение
Есть такое слово в этой букве
Том Ардер, укажите пожалуйста, где в стандарте описан мод nocreate

Добавлено через 33 секунды
и noreplace заодно
0
Gooman
10 / 10 / 0
Регистрация: 03.10.2010
Сообщений: 350
04.02.2012, 14:11  [ТС] #11
Цитата Сообщение от retmas Посмотреть сообщение
Том Ардер, укажите пожалуйста, где в стандарте описан мод nocreate

Добавлено через 33 секунды
и noreplace заодно
Возможно, он описан с borland c++, т.к. методичка именно по нему.
0
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
04.02.2012, 14:14 #12
это расширение борланда. не следует его использовать, тем более, что пользуетесь vs, в котором нет этого расширения
0
Том Ардер
Модератор
Эксперт по математике/физике
3742 / 2355 / 293
Регистрация: 15.06.2009
Сообщений: 4,219
04.02.2012, 14:27 #13
retmas, стандарта под рукой нет. Но есть Borland C++ 3.1 (1992 года) - там уже есть эти моды. Разворачивать древний Турбо С 2.0 и смотреть там нет желания.

Добавлено через 7 минут
ios::nocreate, ios::noreplace есть и в Visual Studio VС++, уже в 6.0, более ранних версий у меня нет
0
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
04.02.2012, 14:32 #14
ну, если Borland C++ для вас стандарт - дело ваше. но не вводите в заблуждение других. если борланд вводит/вводил какие-то расширения, это не значит, что таков стандарт

Добавлено через 3 минуты
ISO/IEC 14882:2011
// 27.5.3.1.4 openmode
typedef T3 openmode;
static constexpr openmode app = unspecified ;
static constexpr openmode ate = unspecified ;
static constexpr openmode binary = unspecified ;
static constexpr openmode in = unspecified ;
static constexpr openmode out = unspecified ;
static constexpr openmode trunc = unspecified ;
и больше ничего. в предыдущем стандарте история с модами была такая же
0
Том Ардер
Модератор
Эксперт по математике/физике
3742 / 2355 / 293
Регистрация: 15.06.2009
Сообщений: 4,219
04.02.2012, 14:57 #15
retmas, Спасибо, я уже посмотрел в файлах - Вы совершенно правы, в стандарте этих мод нет.

В Борланде С++ они есть, в Вижуал Студии тоже (6.0), а в версии 2008 их переименовали: теперь это _Nocreate, _Noreplace
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2012, 14:57
Привет! Вот еще темы с ответами:

Работа с INI-файлами в Visual Studio 2010 - C++
Можете, пожалуйста, объяснить, как работать с ini-файлами в Visual Studio 2010. Их создание, чтение с существующих файлов, редактирование и...

Работа с файлами (массив приведение типов) Visual studio - C++
Будте добры, помогите разобраться с задачей: в текстовом файле хранится целочисленная матрица. Преобразовать ее в вещественную и вывести на...

Имеются ли отличия в компиляторах у сред разработки Visual Studio 2006 и Visual Studio 2015 ? - C++
скажите а где найти среду 2006 года? или можно использовать 2015 год?

Visual Studio Team Foundation Serverl или Visual Studio Professional - C++
Visual Studio Team Foundation Server 2010 Кто пользовался Visual Studio Team Foundation Server 2010, и чем она отличаеться от Visual...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
04.02.2012, 14:57
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru