139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
1

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

05.01.2012, 10:46. Показов 5931. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот задача:
Создайте структуру типа 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;
}
Вот результат ее работы ссылка на скрин:
Неправильно вводится дата


В чем причина
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2012, 10:46
Ответы с готовыми решениями:

Неправильно вводится русский текст
Товарищи программисты:)Не выводится на экран. Хоть пишу ДА,с НЕТ такая же ерунда! #include...

Дата вводится строкой нужно извлечь день месяц и год в int переменные
Дата вводится строкой нужно извлечь день месяц и год в int переменные. два варианта передачи...

На вход подается дата. Нужно вывести на экран, какая дата будет через 29 дней 12 часов и 44 минуты
На входе заданы дата и время в формате «год, месяц, день, часы, минуты» (все числа даны через...

Проверьте задачку по циклам, неправильно работает. [думаю что неправильно]
Спасибо что решили зайти. Задание выгладит так: http://*******/PW95p А результат выплнения:...

18
2554 / 1319 / 178
Регистрация: 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;
}
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 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>> нельзя?
0
85 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
05.01.2012, 11:04 4
Sylar9, можно, и рекомендуется, если ты "Cиплюсплюсешник"
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
05.01.2012, 11:09  [ТС] 5
Цитата Сообщение от res Посмотреть сообщение
Sylar9, можно, и рекомендуется, если ты "Cиплюсплюсешник"
а как это можно сделать на С++
0
2554 / 1319 / 178
Регистрация: 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;
}
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 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 я так понял будет игнорировать /?
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:20 8
Это функция.
istream::ignore
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
05.01.2012, 11:22  [ТС] 9
Цитата Сообщение от soon Посмотреть сообщение
Это функция.
istream::ignore
а что тогда двойка обозначает?
0
2554 / 1319 / 178
Регистрация: 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.
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
05.01.2012, 11:34  [ТС] 11
Цитата Сообщение от soon Посмотреть сообщение
Там все написано
а как сделать что бы ноли выводились
0
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:41 12
Цитата Сообщение от Sylar9 Посмотреть сообщение
а как сделать что бы ноли выводились
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
05.01.2012, 11:43  [ТС] 13
Цитата Сообщение от soon Посмотреть сообщение
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
это как можно сделать "Если меньше 10, то выводить лидирующий ноль"
0
2554 / 1319 / 178
Регистрация: 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;
1
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
05.01.2012, 11:46  [ТС] 15
Цитата Сообщение от soon Посмотреть сообщение
Смеетесь что-ли?
C++
1
2
3
if(a < 10)
    std::cout << '0';
std::cout << a;
а га спасибо!!!!
0
1 / 1 / 0
Регистрация: 16.09.2014
Сообщений: 36
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 / 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;
}
0
-8 / 1 / 1
Регистрация: 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;
}
0
2 / 2 / 0
Регистрация: 23.05.2019
Сообщений: 14
29.05.2019, 20:37 19
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
#include<iostream>
using namespace std;
struct date
{
    int day;
    int month;
    int year;
};
 
int main()
{
    date d;
    char x, question;
    do
    {
        cout<<"Enter a date in format day/month/year: ";
        cin>>d.day>>x>>d.month>>x>>d.year;
        if ((d.day>28&&d.month==2)||((d.month==4||d.month==6||d.month==9||d.month==11)&&d.day>30)||d.month>12||d.day>31)
        {
            cout<<"\nIncorrect date. Please try again\n\n";
            continue;
        }
        cout<<"Date is "<<d.day<<x<<d.month<<x<<d.year<<endl;
        cout<<"Try again? y/n\n";
        cin>>question;
    }
    while (question!='n');
    return 0;
}

это расширенная версия программы, с учетом коротких месяцев. Високосный год не учитывал, решил не заморачиваться. Переменная Х вводится для ввода разделителя в дату.
0
29.05.2019, 20:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2019, 20:37
Помогаю со студенческими работами здесь

Неправильно работает цикл for, и функции работают неправильно
1) Неправильно работает цикл for(k=0...). Входит только 1 раз, дальше вылетает. Делал пошаговую...

Кто дописать может проверку на дату чтобы дата если дата будет введена больше чем 12.30.2020 просило ввести заново
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;conio.h&gt; #include &lt;cstring&gt; #include &lt;cstdio&gt;...

Неправильно вводится число
Всем привет! Проблема возникла... Вобщем, вот запрос к базе INSERT INTO `users`...

Дата записывается в БД неправильно
Нужно чтобы пользователь выбрал дату(из календаря), затем она должка записаться в базу, после чего...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru