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

Как организовать ввод в консольную строку даты в виде: dd/mm/yyyy - C++

Восстановить пароль Регистрация
 
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
08.03.2014, 19:14     Как организовать ввод в консольную строку даты в виде: dd/mm/yyyy #1
Подскажите, кто знает как организовать ввод в консольную строку даты в виде: dd/mm/yyyy.
Чтобы потом можно было считать переменные day, month, year.
Заранее спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
allukard
 Аватар для allukard
147 / 147 / 2
Регистрация: 08.11.2010
Сообщений: 1,312
08.03.2014, 21:43     Как организовать ввод в консольную строку даты в виде: dd/mm/yyyy #2
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
void function_fun(){
 
    int day;
    int month;
    int year;
 
    cout <<"Введите число месяца: ";
    cin >>day;
 
    cout <<"Введите месяц года: ";
    cin >>month;
 
    cout <<"Введите год: ";
    cin >>year;
 
    cout <<"Дата: " << day << "." << month << "." << year;
}
 
int main()
 
{    
    setlocale(LC_ALL,"RUS");
    function_fun();
    system("pause");
    return 0;
}
сильно опыта в с++ нет говорю сразу.

Добавлено через 5 минут
мм.. а как же их объединить)
DrOffset
6424 / 3798 / 879
Регистрация: 30.01.2014
Сообщений: 6,591
08.03.2014, 22:00     Как организовать ввод в консольную строку даты в виде: dd/mm/yyyy #3
Цитата Сообщение от allukard Посмотреть сообщение
мм.. а как же их объединить)
Donville,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cstdio>
 
int main()
{
    int day   = 0;
    int month = 0;
    int year  = 0;
 
    std::printf("Input date: ");
    if(std::scanf("%d/%d/%d", &day, &month, &year) == 3)
    {
        std::printf("Your date: [%02d/%02d/%04d]\n", day, month, year);
    }
    else
    {
        std::printf("Incorrect format.\n");
    }
}
Donville
0 / 0 / 0
Регистрация: 16.02.2014
Сообщений: 112
10.03.2014, 22:30  [ТС]     Как организовать ввод в консольную строку даты в виде: dd/mm/yyyy #4
Нашел вот такой способ интересным:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string.h>
using namespace std;
 
int main()
{
    char day[3],month[3],year[5];
    cout<<"Please input the date in dd/mm/yyyy format:";
    cin.get(day,3,'/');
    cin.ignore(100,'/');
    cin.get(month,3,'/');
    cin.ignore(100,'/');
    cin.get(year,5);
    
    //convert them to int
    int d,m,y;
    d=atoi(day);
    m=atoi(month);
    y=atoi(year);
)
А как теперь тут сделать проверку на ввод? Или как разрешить вводить только цифр и слэша?

Добавлено через 23 часа 45 минут
C++
1
2
3
4
5
6
7
8
9
do
{
    ch=_getch();
    if ((ch>=48 && ch<=57)||ch==47)
    {
       putchar(ch);
    }
}
while (ch!=13);
А вот как сделать чтобы ввод происходил только в формате 2/2/4 ??

Добавлено через 5 часов 19 минут
Все еще актуально
Yandex
Объявления
10.03.2014, 22:30     Как организовать ввод в консольную строку даты в виде: dd/mm/yyyy
Ответ Создать тему
Опции темы

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