![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Я такой вот код написал:
По идее, функция должна сохранять заданный во втором аргументе текст в файл. Но у меня сейчас нет возможности проверить ее работоспособность. Прошу проверить, оценить и поправить, если что не так. |
|||
|
||||
| Mayk |
|
||||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Не пойму что делают directory и file_name в аргументах.
Директория от имени файла должна отделятся слешем. Когда человек видит Enter directory:, то он (в силу природной лени) не вбивает последний слеш. Грубо надо так:full_path = directory+'\\'+file_name; Кстати, надо бы проверить что сделает дос/винда, если указать два и более разделителя подряд. То есть является ли имя "bc31\\\\bin\\bcc.exe" допустимым.
Заменить text на text.c_str()
Возвращается дескриптор на закрытый файл, что не есть хорошо, так как может появится желение туда что-то дописать. Надо либо не закрывать файл, либо изменить возвращаемое значение на bool/int и в случае успеха возвращать, допустим, true/1, а в случае неудачи, допустим, false/0. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||||
|
|||||||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
А что за функция open_file?? Это что чисто борландовская??
Я знаю тока fopen(const char *, const char *), то есть с ней надо так:
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Гм... Mayk, с учетом всех поправок будет так:
Так, да? Добавлено @ 12:13 comcon1, функция open_file в С++ и Борланде отсутствует. |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Ну почти. По идее string full_patch=directory+"\\"+file_name; выполняется медленнее, чем string full_patch=directory+'\\'+file_name; - в первом случае к строке добавляется строка, а во втором только символ. Несколько тактов процессора сэконимшь %-) Но в конце концов запусти компилятор и посмотри, что скажет. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
А еще ты мешаешь две концепции - C-шную и потоковую (iostream).
2ая : Ты можеш открыть файл как fstream и писать туда также как в std::cout, через <<. 1ая : А пишешь на С (через fopen и fclose) - как можно меньше используешь std::string и <<, вместо них printf, sprintf. Так красивее будет, думается. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Красивее - может быть, но я не умею работать с файлами с использованием файла <iostream.h>. А если разницы нет, то зачем учить больше?
|
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Затем, что так красивее. Работать в одной концепции. Не только из соображений общей симметрии и парадоксальных мнений, а поскольку в одной концепции ты
-- ловишь ОДНИ и ТЕ ЖЕ исключения -- используешь ОДНИ и ТЕ ЖЕ алгоритмы. -- не размножаешь мозг совместимостью -- (многое другое) А если мешаешь все в кучу, програма, к примеру, подключает не 10 доп. библиотек, а 50. А это ее не красит. Когда програма в 100 строк - пофигу. А когда она в несколько тысяч строк, в 25 файлах и 15 заголовках -- отнюдь не пофигу. ----------------- Слова "не умею" не принимаются. я тебе назвал слово "fstream": ты десять раз мог слазить на MSDN, ввести fstream и посмотреть примеры. Но ты предпочитаешь выяснять все здесь. Советую тебе больше этого не делать. Ты уже обладаешь определенными навыками, чтобы искать информацию самому. Вопросы сюда -- конкретные. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Ладно, тогда еще вопрос: что такое MSDN?
|
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
А в Гугле набрать слабо? http://msdn.microsoft.com Ну и, естественно, есть локальная версия. Примерно 3 CD диска Если хочешь нормально программировать на Visual C++, то иметь обязательно. Это сообщение отредактировал(а) Дрон - 8.8.2005, 16:04 -------------------- Да. Именно так. |
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
Сколько раз я уже говорил, что ни мур-мур в английском не понимаю.
|
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: 12 Всего: 17 |
Хех. Так начинай ориентироваться. Как доки-то читать будешь??
|
|||
|
||||
| mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: нет Всего: 128 |
А никак. Поэтому и сижу на этом форуме.
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Sim7, да что с fstream'ами-то работать? Для многих типов перегружены операторы ввода-вывода.
Открывать файл так же легко (и закрывать):
ИМХО, что сложного? |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
sim7
Мне fstream'ы сразу по душе пришлись, ибо что-то меня не прикалывают варварские методы чтения. Тем более ifstream обладает одной полезной(иногда) вещью, он позволяет автоматически разделять чтение, ореинтируясь на конец строки и пробелы - это очень полезно. Это сообщение отредактировал(а) En_t_end - 9.8.2005, 07:27 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |