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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2010, 23:01   #1
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию while(! input.eof())

здравствуйте, у меня сложность:
в программе приходится 2 раза открывать исходный текстовый файл,и, так как первый раз файл я открывал через
Код:
while(! input.eof())
{
input.getline(text,sizeof(text));
kol[j]=strlen(text);
}
то второй раз этот файл не открывается, т.к. сразу закрывается, из-за того, что input.eof() уже отвечает своему условию
вследствие чего приходится делать через жопу:
Код:
while(! input2.eof()){
input2.getline(text,sizeof(text));
<...>
}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery

Последний раз редактировалось kaljan775; 08.10.2010 в 23:28.
kaljan775 вне форума Ответить с цитированием
Старый 09.10.2010, 00:07   #2
Kill-All-N-Thrash
Пользователь
 
Аватар для Kill-All-N-Thrash
 
Регистрация: 28.07.2010
Сообщений: 43
По умолчанию

Когда достигается конец файла, выставляются флаги eof и failbit, что блокирует дальнейшие действия с ним...
попробуйте так что-ли:
Код:
if(input.fail())
{
   input.clear();
}
while(!input.eof())
{
input.getline(text,sizeof(text));
kol[j]=strlen(text);
}
я не проверял... у меня когда-то похожий трабл был.
Kill-All-N-Thrash вне форума Ответить с цитированием
Старый 09.10.2010, 01:16   #3
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

так, следующий вопрос, дабы темы не плодить, как извернуться так. чтобы
брать из одного файла и бросать обратно в файл
вся проблема в следующем:
Код:
ifstream input(filename);
ofstream output (filename);

while(! onput.eof())
{
input.getline(text,sizeof(text));
<обработка>
output<<text<<endl

}
проще говоря данные берутся и кидаются в одном цикле одновременно, что наверняка приведет к ошибке данных
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 09.10.2010, 11:58   #4
coinkrsk
пыжашийся нуб
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 93
По умолчанию

Уточню: нужен на выходе файл вида:
<read><write><read><write>...?
Тоесть Вы хотите вставлять данные в середину файла не затирая дальнейшие?
coinkrsk вне форума Ответить с цитированием
Старый 09.10.2010, 12:41   #5
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

да.
Ну, или я сейчас делаю так, чтобы использовался и удалялся дополнительный файл
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как задать EOF? Geolaz Общие вопросы C/C++ 24 17.01.2010 22:16
функция eof! срочно! kitty_girl Помощь студентам 6 21.05.2009 22:25
проблема с std::ifstream.eof() alex8 Общие вопросы C/C++ 5 05.05.2009 18:24
fstream.eof() в mingw alexinspir Общие вопросы C/C++ 1 30.09.2008 08:00