Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 03.03.2010, 16:58   #1
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Репутация: 8
По умолчанию Что делает этот код?

здравствуйте вот вопрос
эта процедура проги для поиска в базе данных
но я не совсем это понимаю
?
Код:
void search(void) {
	printf(	"\n\nПоиск по базе 'people.dat'\n\n" );
	char s[16];
	printf( "Введите часть имени: " );
	scanf_s( "%15s%*[^\n]5000s", s, 16 );

	printf(	"\n\n\tИмя:      \tВозраст:\n" );
	fseek( f, 0, SEEK_SET );
	setlocale( LC_ALL, ".866" );
	block t;
	while( true ) {
		if( fread( &t, sizeof(block), 1, f ) !=1 ) break;
		if( strstr( t.name, s ) != NULL )
			printf( "\t%-15s\t%d\n", t.name, t.age );
	}
	setlocale( LC_ALL, ".1251" );
}
можете пояснить этот кусок пргоги
Код:
printf(	"\n\n\tИмя:      \tВозраст:\n" );
	fseek( f, 0, SEEK_SET );
	setlocale( LC_ALL, ".866" );
	block t;
	while( true ) {
		if( fread( &t, sizeof(block), 1, f ) !=1 ) break;
		if( strstr( t.name, s ) != NULL )
			printf( "\t%-15s\t%d\n", t.name, t.age );
Alex_sim вне форума   Ответить с цитированием
Старый 03.03.2010, 17:38   #2
Slicker
Форумчанин
 
Регистрация: 25.08.2008
Адрес: Новосибирск
Сообщений: 51
Репутация: 10
По умолчанию

Код:
while( true ) {
Бесконечный цикл

Код:
		if( fread( &t, sizeof(block), 1, f ) !=1 ) break;
Если достингнут конец файла, выход из цикла

Код:
		if( strstr( t.name, s ) != NULL )
			printf( "\t%-15s\t%d\n", t.name, t.age );
Если значение t.name не пустое, то выводим значения t.name, t.age
Slicker вне форума   Ответить с цитированием
Старый 03.03.2010, 17:44   #3
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Репутация: 8
По умолчанию

спасибо)))))
я просто
не сталкивался с файлами
можете еще под сказать

Код:
 scanf_s( "%15s%*[^\n]5000s", s, 16 ):confused:;
можно ли тоже самое сделать но через cin

Последний раз редактировалось Stilet; 03.03.2010 в 17:48.
Alex_sim вне форума   Ответить с цитированием
Старый 03.03.2010, 17:49   #4
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6832
По умолчанию

А чем scanf не устраивает?
__________________
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 03.03.2010, 17:52   #5
Alex_sim
Форумчанин
 
Аватар для Alex_sim
 
Регистрация: 18.02.2010
Сообщений: 164
Репутация: 8
По умолчанию

я scanf не совсем понимаю обьясните
что за что отвечает
?
Alex_sim вне форума   Ответить с цитированием
Старый 03.03.2010, 18:06   #6
Slicker
Форумчанин
 
Регистрация: 25.08.2008
Адрес: Новосибирск
Сообщений: 51
Репутация: 10
По умолчанию

Честно признатсья я не профи в С++
%15s вот это ограничение ввода 15 символами насколько я понимаю.. то что дальше написано, мне не понятно

Попробуй написать так

Код:
scanf( "%15s", &s);
Slicker вне форума   Ответить с цитированием
Старый 03.03.2010, 18:37   #7
Гром
Профессионал
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
Репутация: 473

icq: 482-373-277
По умолчанию

Про scanf можете прочитать здесь:
http://trivialcoding.ru/Textbook/Les...ntf-scanf.html
__________________
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума   Ответить с цитированием
Старый 03.03.2010, 22:35   #8
sadf
 
Регистрация: 03.03.2010
Сообщений: 7
Репутация: 10
По умолчанию

Дабы не создавать новую тему, напишу здесь, если можно.

Что означает эта строчка кода?

Код:
a = ((val & 1) == 1);
Побитовое И я понимаю, а что означает "==1" ?
sadf вне форума   Ответить с цитированием
Старый 03.03.2010, 23:03   #9
Slicker
Форумчанин
 
Регистрация: 25.08.2008
Адрес: Новосибирск
Сообщений: 51
Репутация: 10
По умолчанию

Цитата:
Сообщение от sadf Посмотреть сообщение
Дабы не создавать новую тему, напишу здесь, если можно.

Что означает эта строчка кода?

Код:
a = ((val & 1) == 1);
Побитовое И я понимаю, а что означает "==1" ?
Двойное равно - это равно как сравнение, а не как присвоение.
Например If (a == 1) читается как: Если а равно 1..
Slicker вне форума   Ответить с цитированием
Старый 03.03.2010, 23:30   #10
sadf
 
Регистрация: 03.03.2010
Сообщений: 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Slicker Посмотреть сообщение
Двойное равно - это равно как сравнение, а не как присвоение.
Например If (a == 1) читается как: Если а равно 1..
Я немножко некорректно выразился. Я имел в виду к чему здесь это равно? Что в даном случае оно означает?
sadf вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что делает код AllForCS PHP 1 24.02.2010 01:50
Подскажите пожалуйста что делает этот код SlashMan JavaScript, Ajax 3 10.01.2010 23:41
Что делает этот код? lucky Общие вопросы Delphi 4 17.06.2009 17:02
Что будет собой прдставлять этот код: Pirotexnik Общие вопросы Delphi 3 27.03.2009 14:30
Что делает этот while do? Levhik Общие вопросы C/C++ 4 25.01.2009 18:27


02:56.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru