HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 03.11.2009, 17:23
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

Вообще \\ это сишная запись символа \
т.е. сишная запись C:\\dir\\ после компила превратится в C:\dir\ это всеголишь экранирование слеша. А вот винда хавает разделитель \ хотя и против \\ ничего не имеет.
Ну а если нужно всётаки иметь формат \\ то просто пробегайся по всем элементам и копируй из во второй буфер, а если встретится \ то 2 раза повторяй его
 
Ответить с цитированием

  #2  
Старый 03.11.2009, 17:23
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
С нами: 9851426

Репутация: 1676


По умолчанию

А зачем получать текущую директорию? Если предполагается, что файл лежит в папке с программой, то можно просто имя файла указать вроде...
 
Ответить с цитированием

  #3  
Старый 03.11.2009, 17:29
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами: 9270510

Репутация: 519


По умолчанию

Цитата:
не думай просто вставь эту строку =)
Если сделать:
char buff[256];
FILE * open = fopen(dir,"r")
while(fgets(buff,255,open))
{
printf(buff);
}

программа не конпелится, и вылетает.

Цитата:
Ну а если нужно всётаки иметь формат \\ то просто пробегайся по всем элементам и копируй из во второй буфер, а если встретится \ то 2 раза повторяй его
можна примерчик?)

Цитата:
А зачем получать текущую директорию? Если предполагается, что файл лежит в папке с программой, то можно просто имя файла указать вроде...
char buff[256];
FILE * open = fopen("file.txt","r")
while(fgets(buff,255,open))
{
printf(buff);
}

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

  #4  
Старый 03.11.2009, 17:33
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
С нами: 9851426

Репутация: 1676


По умолчанию

А разве printf не предполагает наличие формата первым аргументом?
 
Ответить с цитированием

  #5  
Старый 03.11.2009, 17:34
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами: 9270510

Репутация: 519


По умолчанию

printf("%s",buff);
такая же фигня
 
Ответить с цитированием

  #6  
Старый 03.11.2009, 17:40
slesh
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами: 10097606

Репутация: 3349


По умолчанию

Код:
char buff[256];
FILE * f;

GetCurrentDirectory(256, buff);
strcat(buff, "\\file.txt");

f = fopen(buff,"r");
if (f)
{
  while(fgets(buff,255,f))
  {
    printf("%s\n",buff);
  }
  fclose(f);
}
 
Ответить с цитированием

  #7  
Старый 03.11.2009, 17:51
_antony
Познающий
Регистрация: 16.07.2008
Сообщений: 82
С нами: 9379631

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

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

  #8  
Старый 03.11.2009, 18:05
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами: 9270510

Репутация: 519


По умолчанию

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

  #9  
Старый 03.11.2009, 17:59
-m0rgan-
Постоянный
Регистрация: 29.09.2008
Сообщений: 553
С нами: 9270510

Репутация: 519


По умолчанию

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]
 
Ответить с цитированием

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

Репутация: 3349


По умолчанию

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

	return;
}

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



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