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
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 599


По умолчанию

Ant1b10t1k

типа такого

Код:
void cycle_input(ifstream& file)
{
	if(file.eof())
		file.seekg(0, ios_base::beg);
}

void main()
{

	ifstream fin( "1.txt" ); 
	ifstream fim( "2.txt" ); 
	ifstream fib( "3.txt" ); 

	string mlstr; 
	string mainstr; 
	string str_name; 

	do 
	{ 
		getline( fib, str_name ); 

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

		getline( fim, malstr ); 
		cycle_input(fim);

		somefunction(str_name, mainstr, malstr); 
	} 
	while(!fib.eof());
}
 
Ответить с цитированием

  #2  
Старый 21.06.2009, 22:25
Ant1b10t1k
Новичок
Регистрация: 18.06.2009
Сообщений: 17
Провел на форуме:
421610

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

не вышло что то у меня, вот отрвок. кода что сдесь не так. Напомню мне нужно брать с файла потока(fib) пока он не будет окончен а с остальных брать по строке, и если дошло до конца брать сначала и так пока файл поток (fib) не будет окончен.

Код:
void cycle_input(ifstream& file)
{
	if(file.eof())
		file.seekg(0, ios_base::beg);
}
Код:
do
{
cycle_input(fin);
cycle_input(fim);
cycle_input(fit);
cycle_input(fite);
cycle_input(file);

getline( fib, str_1 );
getline( fin, mainstr );
getline( fim, mailstr );
getline( fit, str_themes);
getline( fite, str_text );
getline (file,str_name);


size_t pos = mainstr.find( ';' );
size_t pos2 = mainstr.find( '\0' );
size_t pos3 = mailstr.find(';');
size_t pos4 = str_1.find('\0');
size_t pos5 = str_themes.find('\0');
size_t pos6 = str_text.find('\0');
size_t pos7 = str_name.find('\0');
if ( pos !=string::npos )
  {

string strlog = mainstr.substr( 0, pos);
string strp1 = mainstr.substr(pos+1,pos2);
string strm2 = mailstr.substr(0,pos3);
string m3 = str_base.substr(0,pos4);
string themes = str_themes.substr(0, pos5);
string text = str_text.substr(0, pos6);
string name=str_name.substr(0, pos7);

sendbuffer(strlog,strp1,strm2, m3, themes, text, name);

}
}

while(!fib.eof());
 
Ответить с цитированием

  #3  
Старый 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..
 
Ответить с цитированием

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

Репутация: 414


По умолчанию

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

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

Репутация: 930


По умолчанию

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

  #6  
Старый 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..
 
Ответить с цитированием

  #7  
Старый 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..
 
Ответить с цитированием

  #8  
Старый 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, нельзя было записать ничего кроме цифр ?
 
Ответить с цитированием

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

Репутация: 930


По умолчанию

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

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

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

Цитата:
Ответ я, как ни странно, уже дал.
Сорри, стормазил я чет, совсем забыл про else.
Терь написал
Код:
else
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 ™ © 2001- Antichat Kft.