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

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

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

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

05.01.2012, 10:46. Просмотров 1754. Ответов 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     Неправильно вводится дата
Посмотрите здесь:

Дата вводится строкой нужно извлечь день месяц и год в int переменные - C++
Дата вводится строкой нужно извлечь день месяц и год в int переменные. два варианта передачи строки: 1) &quot;12.05.2012&quot; 2) в строке месяц...

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

Вводится последовательность - C++
Вводится последовательность из N вещественных чисел. Определить является ли последовательность строго возрастающей.

Вводится матрица... - C++
Вводится матрица А построчно. Выберите из матрицы А подматрицу В, заданной суммой элементов или сообщите, что такой подматрицы не...

Вводится последовательность чисел - C++
Вводится последовательность чисел. Подсчитать количество положительных и отрицательных чисел.

Вводится массив из 10-ти элементов - C++
Вводится массив из 10-ти элементов. Вывести эти элементы на экран. Найдите минимальный и максимальный элементы массива и поменяйте их...

не вводится число в массив - C++
Задача: при наборе с клавиатуры чисел сформировать из них массив и переставить в этом массиве 0 в конец (т.е. вводим 343042340, получаем...

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

Дата - C++
подскажите как сделать воод даты в одну строку и за разделитель взять точку Добавлено через 33 минуты программисты подскажите что...

дата - C++
Господа програмисты,как сделать,что бы выводилась на экран одна дата(без месяца и тд.). Заранее всем огромное спасибо!!!

С клавиатуры вводится массив из 10 чисел - C++
С клавиатуры вводится массив из 10 чисел. Определить количество положительных элементов этого массива.


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

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

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