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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,910
Записей в блоге: 1
#1

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

05.01.2012, 10:46. Просмотров 1680. Ответов 17
Метки нет (Все метки)

Вот задача:
Создайте структуру типа 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++
не вводится число в массив C++
C++ Вводится последовательность чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2537 / 1302 / 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,910
Записей в блоге: 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,910
Записей в блоге: 1
05.01.2012, 11:09  [ТС]     Неправильно вводится дата #5
Цитата Сообщение от res Посмотреть сообщение
Sylar9, можно, и рекомендуется, если ты "Cиплюсплюсешник"
а как это можно сделать на С++
soon
2537 / 1302 / 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,910
Записей в блоге: 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
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:20     Неправильно вводится дата #8
Это функция.
istream::ignore
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,910
Записей в блоге: 1
05.01.2012, 11:22  [ТС]     Неправильно вводится дата #9
Цитата Сообщение от soon Посмотреть сообщение
Это функция.
istream::ignore
а что тогда двойка обозначает?
soon
2537 / 1302 / 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,910
Записей в блоге: 1
05.01.2012, 11:34  [ТС]     Неправильно вводится дата #11
Цитата Сообщение от soon Посмотреть сообщение
Там все написано
а как сделать что бы ноли выводились
soon
2537 / 1302 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:41     Неправильно вводится дата #12
Цитата Сообщение от Sylar9 Посмотреть сообщение
а как сделать что бы ноли выводились
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,910
Записей в блоге: 1
05.01.2012, 11:43  [ТС]     Неправильно вводится дата #13
Цитата Сообщение от soon Посмотреть сообщение
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
это как можно сделать "Если меньше 10, то выводить лидирующий ноль"
soon
2537 / 1302 / 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,910
Записей в блоге: 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
Сообщений: 35
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++
C++ Дата вводится строкой нужно извлечь день месяц и год в int переменные
C++ Вводится последовательность
Вводится массив из 10-ти элементов C++
C++ На вход подается дата. Нужно вывести на экран, какая дата будет через 29 дней 12 часов и 44 минуты

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

Или воспользуйтесь поиском по форуму:
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     Неправильно вводится дата
Ответ Создать тему
Опции темы

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