|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.02.2012, 11:30 | #1 |
Регистрация: 26.01.2012
Сообщений: 8
|
как закончить ввод???(поставить EOF в конце файла)
Ребят, просветите пожалуйста в следующем вопросе: вот в самом низу приведен элементарный листинг чтения файла. Как известно, программа распознает конец файла, когда натыкается на символ EOF.
Если я создаю файл с помощью потока,например, вот так: char namefile[90]; cin.getline(namefile,89); ofstream out(namefile); out<<12<<34<<45; то программа дописывает этот символ, и в дальнейшем цикл, который я выделил красным цветом в листинге, выполняется без проблем, и на экран все выводится корректно. Если же создать файл таким образом - создать-текстовый файл, вбить в него какую-нибудь информацию, и закрыть, то читатся этот файл не будет, т.к. возникает бесконечный цикл(ведь программа не может найти EOF). Собственно вопрос: как мне показать, что ввод окончен?? Код:
Последний раз редактировалось ACE Valery; 02.02.2012 в 00:09. |
01.02.2012, 11:37 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
out.close() ?
Кстати, можно использовать тег [CODE] (значок # ) для сохранения форматирования и подсветки кода в сообщении. Кнопка Правка снизу справа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
01.02.2012, 11:46 | #3 |
Регистрация: 26.01.2012
Сообщений: 8
|
Я имею ввиду, что мне написать в блокноте, чтобы программа обнаружила конец файла??? В конце текста как-нибудь можно показать, что я закончил набивать текст. Вот проблема в том, что если файл создается с помощью потока, программа как-то дописывает этот символ, и цикла бесконечного не получается, т.к. программа как-то узнает, что файл закончен.
А то вот тут бесконечность получается если файл создать обычным способом, а не через поток: Код:
|
01.02.2012, 12:05 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Не уверен в причине этого, но как-то так (т.е. endl или close() нужен):
Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 01.02.2012 в 12:09. |
01.02.2012, 12:21 | #5 | ||
Регистрация: 26.01.2012
Сообщений: 8
|
Цитата:
Но попробуй создать файл обычным способом, открыв блокнот и напечатав что-нибудь в нем. Потом, как только ты закроешь блокнот, и откроешь его с помощью потока, цикл почему-то не сможет найти EOF. Ума не приложу, почему так. Цитата:
|
||
01.02.2012, 14:18 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Эм...Создал, написал, сохранил (даже не закрывал блокнот) — всё работает и всегда работало.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
01.02.2012, 15:16 | #7 |
Регистрация: 26.01.2012
Сообщений: 8
|
Странно.... надо будет попробовать в другом компиляторе запустить... Проблема в том, что файл, который я создаю обычным путем, отказывается читаться до конца...
Спасибо за помощь! |
01.02.2012, 15:20 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Может блокнот плохой?) Стандартным вин7 блокнотом, всё читается и скомпилированной в Visual C++ 2010, и Dev-C++.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ввод EOF c консоли - это Ctrl+Z и Ctrl+M Почему? | 8Observer8 | Общие вопросы по программированию, компьютерный форум | 10 | 13.01.2023 09:33 |
Получить имя файла из ссылки(в конце ссылки нет имени файла) | Человек_Борща | Работа с сетью в Delphi | 11 | 05.06.2011 15:15 |
как поставить ограничение на ввод нуля? | Dr.Swat | Общие вопросы Delphi | 5 | 14.06.2010 06:43 |
Как задать EOF? | Geolaz | Общие вопросы C/C++ | 24 | 17.01.2010 22:16 |
Delphi 7, удалить символ в конце файла | Flame_of_Death | Помощь студентам | 5 | 10.08.2009 06:32 |