HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3211  
Старый 22.06.2009, 02:34
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

мда. file.seekg(0, ios_base::beg); работает только при чтении файла, открытого с можификатором binary. чтото как то потоки ввода ацки кривые и я не вижу адекватного способа сбросить указатель чтения на начало файла. попробуй закрыть открыть. или просто юзай другой способ чтения

через жопу но работает.
Код:
void cycle_input(ifstream& file, string& filename)
{
	if(!file.eof())
		return;

	file.close();
	file.clear();

	file.open(filename.c_str(), ios::in);

}

void main()
{

	string fin_filename = "1.txt";
	string fim_filename = "2.txt";
	string fib_filename = "3.txt";

	ifstream fin(fin_filename.c_str() ); 
	ifstream fim( fim_filename.c_str() ); 
	ifstream fib( fib_filename.c_str() ); 

	string mlstr; 
	string mainstr; 
	string str_name; 

	do 
	{ 
		getline( fib, str_name ); 

		cycle_input(fin, fin_filename);
		getline( fin, mainstr ); 

		cycle_input(fim, fim_filename);
		getline( fim, mlstr ); 
	} 
	while(!fib.eof());

	system("pause");
}

Последний раз редактировалось Ra$cal; 22.06.2009 в 02:39..
 
Ответить с цитированием

  #3212  
Старый 22.06.2009, 18:45
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
Такой вопрос:
Существует ли в языке С++ команда которая полностью очищает содержимое файла
не удаляя сам файл ?
Нет, по крайней мере в стандартной библиотеке.
 
Ответить с цитированием

  #3213  
Старый 22.06.2009, 19:47
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

WinMain(), вопрос был: есть ли такая функция в стандарте языка.
 
Ответить с цитированием

  #3214  
Старый 23.06.2009, 07:31
Useroff
Участник форума
Регистрация: 23.08.2008
Сообщений: 143
Провел на форуме:
1149516

Репутация: 52
По умолчанию

Короче, проблемма вот в чем.
Есть цикл for(;, в нем находится вся программа, так же есть переменная live.
Если она ровняется 1, то выполняется одно действие, если 2, то другое, если 3, то
break;

А если ввести другие знаки, кроме цифр, то получится так, что for(; будет работать безконечно.

Подскажите, как профиксеть ?

Последний раз редактировалось Useroff; 23.06.2009 в 08:26..
 
Ответить с цитированием

  #3215  
Старый 23.06.2009, 07:47
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Напиши код. Я нифига не понял ^^
Возможно тебе поможет оператор case и использование default.
Откуда взялся while, если цикл for. Или цикл просто бесконечный.

Вообщем насколько я понял так:
Код:
while(1) {
    switch( ) {

     case 0: 
   
     case 1:

     ...
     
     case N:

     default:

}}
Любые действия со стороны юзера ты можешь контролировать. Или же ты можешь ввести обработку исключений.

Последний раз редактировалось Fata1ex; 23.06.2009 в 07:51..
 
Ответить с цитированием

  #3216  
Старый 23.06.2009, 08:25
Useroff
Участник форума
Регистрация: 23.08.2008
Сообщений: 143
Провел на форуме:
1149516

Репутация: 52
По умолчанию

Ладн, задам вопрос вот так:
Есть переменная live

Код:
for(;;) {
float live

cin  >> live;
if (live==1)
{
Код...
}
if (live==2)
{
Код...
}
if (live=3)
{
cout << "Bye !";
break;
}
}
Как сделать так, чтобы в переменную live, нельзя было записать ничего кроме цифр ?
 
Ответить с цитированием

  #3217  
Старый 23.06.2009, 08:33
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Ответ я, как ни странно, уже дал.
 
Ответить с цитированием

  #3218  
Старый 23.06.2009, 08:43
Useroff
Участник форума
Регистрация: 23.08.2008
Сообщений: 143
Провел на форуме:
1149516

Репутация: 52
По умолчанию

Цитата:
Ответ я, как ни странно, уже дал.
Сорри, стормазил я чет, совсем забыл про else.
Терь написал
Код:
else
break;
 
Ответить с цитированием

  #3219  
Старый 23.06.2009, 08:44
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Использование такого огромного количества условных операций не есть хорошо. Для таких случаев и придумали оператор множественного выбора. Используй его.
 
Ответить с цитированием

  #3220  
Старый 23.06.2009, 10:55
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Код:
exit(1);break;
оО
+ разве я не то же самое написал парой постов выше? ) Зачем писать одно и тоже?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ