Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2011, 11:19   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

почитайте справку по scanf все-таки.
и посмотрите что она вернет в вашем случае.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 08.06.2011, 11:29   #12
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

По Стивену Прата синтаксис цикла правильный. Не правильное описание спецификаторов и аргументов в самой функции scanf(). Странно, что в первом варианте (без цикла) это прокатило.

Возможно мы друг-друга не понимаем. Вообщем давайте так. Как сделать с помощью scanf() считывание IP и присвоение значений четырем переменным?
Kyj вне форума Ответить с цитированием
Старый 08.06.2011, 11:31   #13
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Kyj Посмотреть сообщение
Вообщем давайте так.
Давайте вы все-таки прочитаете, то что вам советуют
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 08.06.2011, 11:36   #14
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Мдя, вот что значит я не в нимательный!!! Спасибо что направили на путь истинный.

Всего-то нужно было написать != 0

Последний раз редактировалось Kyj; 08.06.2011 в 11:50.
Kyj вне форума Ответить с цитированием
Старый 09.06.2011, 10:30   #15
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Удалить это сообщение.

Последний раз редактировалось Kyj; 09.06.2011 в 16:34.
Kyj вне форума Ответить с цитированием
Старый 09.06.2011, 14:41   #16
Kukurudza
Форумчанин
 
Регистрация: 02.06.2011
Сообщений: 282
По умолчанию

не учите человека чему попало!
автор, используй cin, cout , без всяких там спецификаторов!

вот пример:

Код:

#include <iostream>
using namespace std;

...
где то в функции main:

double a;
__int64 b
float c;
char d;

cout << "Введите число с плавающей точкой двойной точности = ";
cin >> a;

cout << "Введите целое число = ";
cin >> b;

cout << "Введите число с плавающей точкой одинарной точности = ";
cin >> c;

cout << "Букву = ";
cin >> d;

cout << a << "\t" << b << "\t" << c << "\t" << d << "\n";
а по поводу циклов, ИСПОЛЬЗУЙТЕ ТОЛЬКО for!
вот так:

Код:

__int32 IP[4];
for ( __int32 i = 0; i < 4; ++i )
{
    cout << "введите часть IP №" << i + 1 << " = ";
    cin >> IP[i];
};

Последний раз редактировалось Kukurudza; 09.06.2011 в 14:45.
Kukurudza вне форума Ответить с цитированием
Старый 09.06.2011, 16:35   #17
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Kukurudza Посмотреть сообщение
автор, используй cin, cout , без всяких там спецификаторов!
Я пока осваиваю Си

зы. Спасибо за помощь.
Kyj вне форума Ответить с цитированием
Старый 09.06.2011, 16:39   #18
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Новый трабл. Не могу разобраться с созданием собственных функций с несколькими аргументами.

Вот пример не работающего кода:
Код:
#include <stdio.h>

void slave(float n, m);

int main(void)
{
	float f1, f2;

	printf("Введите два числа с плавающей точкой: ");

	while(scanf("%f %f", &f1, &f2) == 2)
		slave(f1, f2);
		
	return 0;
}

void slave(float n, m)
{
	printf("%f\n", n + m);
	printf("\n\nВведите два числа с плавающей точкой: ");
}
А вот с одним аргументом пашет:
Код:
#include <stdio.h>

void slave(float n);

int main(void)
{
	float f1;

	printf("Введите число с плавающей точкой: ");

	while(scanf("%f", &f1) == 1)
		slave(f1);
		
	return 0;
}

void slave(float n)
{
	printf("%f\n", n + 10.0);
	printf("\n\nВведите число с плавающей точкой: ");
}

Последний раз редактировалось Kyj; 09.06.2011 в 17:18.
Kyj вне форума Ответить с цитированием
Старый 09.06.2011, 17:02   #19
Сtrl
C++
Форумчанин
 
Аватар для Сtrl
 
Регистрация: 27.03.2011
Сообщений: 803
По умолчанию

Для каждого входящего параметра отдельно указывай тип.
Код:
void slave(float n, float m);
Ищете информацию по C++?
cplusplus.com
Сtrl вне форума Ответить с цитированием
Старый 09.06.2011, 17:19   #20
Kyj
Пользователь
 
Регистрация: 06.06.2011
Сообщений: 26
По умолчанию

Цитата:
Сообщение от Сtrl Посмотреть сообщение
Для каждого входящего параметра отдельно указывай тип.
Код:
void slave(float n, float m);
Понял. Огромное спасибо. Заработало!
Мозг так не напрягался уже забыл когда.
Kyj вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поясните прогу Sobaka_ru Помощь студентам 4 16.12.2010 23:36
Поясните по ассемблеру Namolem Помощь студентам 1 10.10.2010 12:11
Поясните код... Masip Общие вопросы Delphi 1 18.05.2010 07:22
Поясните по getdir AK BULLETS Общие вопросы Delphi 2 19.03.2010 14:16
Поясните ООП sodd Общие вопросы Delphi 1 23.02.2009 14:14