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

  #4181  
Старый 03.11.2009, 17:51
_antony
Познающий
Регистрация: 16.07.2008
Сообщений: 82
Провел на форуме:
424387

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

Цитата:
программа вылетает и не конпелицо.
 
Ответить с цитированием

  #4182  
Старый 03.11.2009, 17:59
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
Провел на форуме:
2584134

Репутация: 519


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

slesh, спс.
И последний вопрс (гна єти два часа))))
Хочу защитится от переполнения буффера.
юзаю фгетс:
Код:
int main ()
{
	char buf[154];
	fgets(buf,sizeof(buf),stdin);
	if(strcmp(LowerCase(buf),"help") == 0)
	{
		printf("%s","OK");
	}
  system("pause");
  return 0;
}
но из за этого строка не преобразовуеться в нижый регистер.
как быть?

Последний раз редактировалось slesh; 03.11.2009 в 18:30.. Причина: [code] КОД [/code]
 
Ответить с цитированием

  #4183  
Старый 03.11.2009, 18:05
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
Провел на форуме:
2584134

Репутация: 519


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

Цитата:
Сообщение от _antony  
Что смешного?
пограмма вылетала в файл dbghook.c указывая на строку _debugger_hook_dummy = 0;
 
Ответить с цитированием

  #4184  
Старый 03.11.2009, 18:28
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

я вот юзаю самописную функцию для перевода буфера в нижний регистр. Понимает ткоа англ буквы
Код:
void my_LowCase(char * buf)
{
	while (buf[0])
	{
		if (buf[0]>='A' && buf[0]<='Z') 
		{
			buf[0] += 32;
			
		}
		buf++;
	}

	return;
}

2 -m0rgan- оформляй код в теги [ CODE ]
 
Ответить с цитированием

  #4185  
Старый 03.11.2009, 18:33
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
Провел на форуме:
2584134

Репутация: 519


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

2slesh я почти тоже:

Код:
char * LowerCase(const char * Command)                                         
{                                                                            
	int num = 0;                                                               
	char* buffer = (char *)malloc(strlen(Command) + 1);                    
	while (Command[num] != '\0')                                             
	{                                                                  
		buffer[num] = tolower(Command[num]);                               
		num++;                                                   
	}                                                                    
	buffer[num] = '\0';                                              
	return (buffer);                                                        
}
Но суть не меняеться:
Код:
int main ()
{
	char buf[154];
	gets(buf);
	if(strcmp(LowerCase(buf),"help") == 0)
	{
		printf("%s","OK");
	}
  system("pause");
  return 0;
}
пашет ок, а:
Код:
int main ()
{
char buf[154];
fgets(buf,sizeof(buf),stdin);
if(strcmp(LowerCase(buf),"help") == 0)
{
printf("%s","OK");
}
system("pause");
return 0;
}
не приобразовует.
 
Ответить с цитированием

  #4186  
Старый 03.11.2009, 18:46
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

ты не забывай что gets возврает строку и вконце неё идет еще \n
 
Ответить с цитированием

  #4187  
Старый 03.11.2009, 22:06
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
Провел на форуме:
2584134

Репутация: 519


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

я могу добавить \n

Код:
int main ()
{
	char buf[154];
	fgets(buf,sizeof(buf),stdin);
	strcat(buf,"\n");
	if(strcmp(LowerCase(buf),"help") == 0)
	{
		printf("%s","OK");
	}
  system("pause");
  return 0;
}
тот же результат.
 
Ответить с цитированием

  #4188  
Старый 03.11.2009, 22:35
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

не там добавляеш. после help надо
 
Ответить с цитированием

  #4189  
Старый 03.11.2009, 23:22
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
Провел на форуме:
2584134

Репутация: 519


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

2slesh - спс!
 
Ответить с цитированием

  #4190  
Старый 04.11.2009, 12:07
люля
Новичок
Регистрация: 06.08.2008
Сообщений: 5
Провел на форуме:
15789

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

Доброе утро всем))
скажите пожалуйста, когда borland c++ 3.1 компилирует, он что использует 32 разрядный код??
просто у меня работает среда, но у меня windows sp2, а у друга у него sp3 и ему пишет ошибку:
16 разрядная подсистема ms-dos
Процессор NTVDM обнаружил недопустимую инструкцию

может ли это быть из за того что у него пак 3?

Последний раз редактировалось люля; 04.11.2009 в 14:36..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по 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