Форум программистов, компьютерный форум CyberForum.ru

Неправильно вводится дата - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 10:46     Неправильно вводится дата #1
Вот задача:
Создайте структуру типа date, содержащую три поля типа int: месяц, день и год. Попросите пользователя ввести день, месяц и год в формате 31/12/2002, сохраните введенное значение в структурной переменной, а за¬тем извлеките данные из этой переменной и выведите их на экран в том же формате, в каком они вводились.
Вот код который я написал:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
using namespace std;
struct Date
{
   int d;
   int m;
   int g;
};
int main()
{
    Date date;
    cout << "Введите дату к примеру 31/02/2012" << endl;
    cin >> date.d; 
    cin >> date.m;
    cin >> date.g;
    cout << date.d <<"/" << date.m << "/" << date.g << endl;
 
system("pause");
return 0;
}
Вот результат ее работы ссылка на скрин:
Неправильно вводится дата

В чем причина
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 10:46     Неправильно вводится дата
Посмотрите здесь:

C++ Вводится матрица...
C++ дата
Дата C++
дата C++
Проверьте задачку по циклам, неправильно работает. [думаю что неправильно] C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 10:53     Неправильно вводится дата #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
typedef struct
{
    int day;
    int month;
    int year;
} Date;
 
int main(void)
{
    Date d;
    scanf("%d/%d/%d", &d.day, &d.month, &d.year);
    printf("%d/%d/%d", d.day, d.month, d.year);
    return 0;
}
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 11:00  [ТС]     Неправильно вводится дата #3
Цитата Сообщение от soon Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
 
typedef struct
{
    int day;
    int month;
    int year;
} Date;
 
int main(void)
{
    Date d;
    scanf("%d/%d/%d", &d.day, &d.month, &d.year);
    printf("%d/%d/%d", d.day, d.month, d.year);
    return 0;
}
а с помощью cin>> нельзя?
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
05.01.2012, 11:04     Неправильно вводится дата #4
Sylar9, можно, и рекомендуется, если ты "Cиплюсплюсешник"
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 11:09  [ТС]     Неправильно вводится дата #5
Цитата Сообщение от res Посмотреть сообщение
Sylar9, можно, и рекомендуется, если ты "Cиплюсплюсешник"
а как это можно сделать на С++
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:10     Неправильно вводится дата #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
#include <string>
 
int main () 
{
    int d, m, y;
    std::cin >> d;
    std::cin.ignore(2, '/');
    std::cin >> m;
    std::cin.ignore(2, '/');
    std::cin >> y;
    std::cout << d << '/' << m  << '/' << y << std::endl;
    return 0;
}
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 11:14  [ТС]     Неправильно вводится дата #7
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <fstream>
#include <string>
 
int main () 
{
    int d, m, y;
    std::cin >> d;
    std::cin.ignore(2, '/');
    std::cin >> m;
    std::cin.ignore(2, '/');
    std::cin >> y;
    std::cout << d << '/' << m  << '/' << y << std::endl;
    return 0;
}
этот оператор ignore я так понял будет игнорировать /?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:20     Неправильно вводится дата #8
Это функция.
istream::ignore
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 11:22  [ТС]     Неправильно вводится дата #9
Цитата Сообщение от soon Посмотреть сообщение
Это функция.
istream::ignore
а что тогда двойка обозначает?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:25     Неправильно вводится дата #10
Там все написано
Цитата Сообщение от cplusplus.com
The extraction ends when n characters have been extracted and discarded or when the character delim is found, whichever comes first.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 11:34  [ТС]     Неправильно вводится дата #11
Цитата Сообщение от soon Посмотреть сообщение
Там все написано
а как сделать что бы ноли выводились
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:41     Неправильно вводится дата #12
Цитата Сообщение от Sylar9 Посмотреть сообщение
а как сделать что бы ноли выводились
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 11:43  [ТС]     Неправильно вводится дата #13
Цитата Сообщение от soon Посмотреть сообщение
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
это как можно сделать "Если меньше 10, то выводить лидирующий ноль"
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:45     Неправильно вводится дата #14
Смеетесь что-ли?
C++
1
2
3
if(a < 10)
    std::cout << '0';
std::cout << a;
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
05.01.2012, 11:46  [ТС]     Неправильно вводится дата #15
Цитата Сообщение от soon Посмотреть сообщение
Смеетесь что-ли?
C++
1
2
3
if(a < 10)
    std::cout << '0';
std::cout << a;
а га спасибо!!!!
Lars
1 / 1 / 0
Регистрация: 16.09.2014
Сообщений: 34
20.12.2014, 19:11     Неправильно вводится дата #16
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
using namespace std;
struct date
{
    int Monat;
    int Tag;
    int Jahr;
};
int main()
{
    
    date sp1,sp2,sp3;
    char dummy;
    cin>>sp1.Tag>>dummy>>sp2.Monat>>dummy>>sp3.Jahr;
    cout<<sp1.Tag<<dummy<<sp2.Monat<<dummy<<sp3.Jahr;
    return 0;
}
Элан
0 / 0 / 0
Регистрация: 14.02.2015
Сообщений: 1
14.02.2015, 10:33     Неправильно вводится дата #17
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
#include <conio.h>
using namespace std;
 
struct date
{
    int day;
    int month;
    int year;
};
 
int main()
{
    date d1;
    char ch;
    setlocale(LC_ALL, "Rus");
    cout << "Введите дату в формате день/месяц/год: ";
    cin >> d1.day >> ch >> d1.month >> ch >> d1.year;
    if (d1.day < 10)
        if (d1.month < 10)
            { cout << "Вы ввели дату 0" << d1.day << "/0" << d1.month << "/" << d1.year; }
        else
            { cout << "Вы ввели дату 0" << d1.day << "/" << d1.month << "/" << d1.year; }
    else
    {
        if (d1.month < 10)
            cout << "Вы ввели дату " << d1.day << "/0" << d1.month << "/" << d1.year;
 
        else
        {
            cout << "Вы ввели дату " << d1.day << "/" << d1.month << "/" << d1.year;
        }
    }
    _getch();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2015, 16:09     Неправильно вводится дата
Еще ссылки по теме:

C++ Дата вводится строкой нужно извлечь день месяц и год в int переменные
C++ Вводится последовательность
C++ На вход подается дата. Нужно вывести на экран, какая дата будет через 29 дней 12 часов и 44 минуты

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6o6ep4ik
 Аватар для 6o6ep4ik
-9 / 0 / 0
Регистрация: 23.10.2015
Сообщений: 175
18.11.2015, 16:09     Неправильно вводится дата #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
struct date {
    int dd;
    int mm;
    int yy;
};
int main()
{
    date data;
    cout << "Enter day DD/MM/YY #: " << endl;
    cin >> data.dd >> data.mm >> data.yy;
    cout << data.dd << "/" << data.mm << "/" << data.yy << endl;
    system("pause");
    return 0;
}
Yandex
Объявления
18.11.2015, 16:09     Неправильно вводится дата
Ответ Создать тему
Опции темы

Текущее время: 01:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru