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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.10.2012, 20:01   #1
NinjaNoob
Пользователь
 
Регистрация: 02.10.2012
Сообщений: 40
По умолчанию Вdод данных C++

С клавиатуры вводится следующий набор символов
AGENT007:1234567.25
В программе определены три переменные: типов int i, long l
и float f.
Используя scanf прочитать и поместить в соответствующие переменные
значения: а) 123 и 4567.25; б) 123456 и 7.25.

На форуме похожего не нашла. На сколько я понимаю функция scanf сама должна определять, например "первые 3 символа записать в одну переменную, а остальное в другую". не совсем могу понять как.
NinjaNoob вне форума Ответить с цитированием
Старый 02.10.2012, 21:21   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Малость банально, но все же предложу:
Код:
struct{
 char a[10];
 char b[4];
 char c[8];
}s2;

int _tmain(int argc, _TCHAR* argv[])
{
	char s[]="AGENT007:1234567.25";
	memcpy(&s2.a,&s[0],9);s2.a[9]=0;
	memcpy(&s2.b,&s[9],3);s2.b[3]=0;
	memcpy(&s2.c,&s[9+3],7);s2.c[7]=0;

	return 0;
}
А далее через atoi() atof() переводишь поля структуры в числа.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.10.2012, 22:20   #3
MadHamster
Пользователь
 
Аватар для MadHamster
 
Регистрация: 13.01.2011
Сообщений: 28
По умолчанию

Код:
#include "stdafx.h"
#include <conio.h>

int main()
{
    int i;
    long l;
    float f;
    scanf("%9*c %3i %8f", &i, &f);
    printf("%i", i);
    printf("\n%.*f", 2, f);
    getch();
    return 0;
}
Дальше разберетесь я думаю
MadHamster вне форума Ответить с цитированием
Старый 03.10.2012, 10:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
scanf("%9*c %3i %8f", &i, &f);
Параметра три а переменки две.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.10.2012, 18:43   #5
NinjaNoob
Пользователь
 
Регистрация: 02.10.2012
Сообщений: 40
По умолчанию

MadHamster, спасибо.
NinjaNoob вне форума Ответить с цитированием
Старый 03.10.2012, 20:25   #6
MadHamster
Пользователь
 
Аватар для MadHamster
 
Регистрация: 13.01.2011
Сообщений: 28
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Параметра три а переменки две.
первый параметр с *, а значит в переменную не записывается
MadHamster вне форума Ответить с цитированием
Старый 03.10.2012, 20:49   #7
NinjaNoob
Пользователь
 
Регистрация: 02.10.2012
Сообщений: 40
По умолчанию

Код:
//123 и 4567.25
    int i;
    long l;
    float f;
    scanf("%9*c %3i %8f", &i, &f);
    printf("%i", i);
    printf("\n%.*f\n", 2, f);
	
    //123456 и 7.25.
    //i=0; l=0; f=0;
    scanf("%9*c %6i %5f", &i, &f);
    printf("%i", i);
    printf("\n%.*f\n", 2, f);
    getch();
    return 0;
хм, а вот вторая часть остается без изменений, т.е в переменные все равно записывается 123 и 4567.25
NinjaNoob вне форума Ответить с цитированием
Старый 03.10.2012, 21:30   #8
MadHamster
Пользователь
 
Аватар для MadHamster
 
Регистрация: 13.01.2011
Сообщений: 28
По умолчанию

Код:
#include "stdafx.h"
#include <conio.h>

int main()
{
    int i;
    long l;
    float f;
    scanf("%9*c %3i %7f", &i, &f);
    printf("%i", i);
    printf("\n%.*f\n", 2, f);
    f = 0;
    scanf("%10*c %6ld %4f", &l, &f);
    printf("%ld", l);
    printf("\n%.*f", 2, f);
    getch();
    return 0;
}
Попробуйте так, помните что \n считается символом.
MadHamster вне форума Ответить с цитированием
Старый 03.10.2012, 22:01   #9
NinjaNoob
Пользователь
 
Регистрация: 02.10.2012
Сообщений: 40
По умолчанию

так хорошо. спасибо
NinjaNoob вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как совместить вставку данных формы с копированием данных самого листа? serikov Microsoft Office Excel 0 11.10.2011 10:20
Как сделать вывод данных после всего ввода данных. Donatello Общие вопросы C/C++ 6 16.01.2011 16:32
как из динамических данных одной ячейки сформировать массив данных? gramp Microsoft Office Excel 6 26.12.2010 21:07
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) Vitalik85 Microsoft Office Excel 4 12.08.2009 00:30