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

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

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

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

05.01.2012, 10:46. Просмотров 1820. Ответов 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;
}
Вот результат ее работы ссылка на скрин:
Неправильно вводится дата

В чем причина
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2012, 10:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Неправильно вводится дата (C++):

Неправильно вводится русский текст - C++
Товарищи программисты:)Не выводится на экран. Хоть пишу ДА,с НЕТ такая же ерунда! #include &lt;iostream&gt; #include &lt;string&gt; using...

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

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

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

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

Не вводится массив - C++
После выполнения inputMtx() массив остается с значениями 0 в каждом элементе. А мне надо заполнить его нормально и вывести через switch. ...

17
soon
2541 / 1306 / 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;
}
0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,931
Записей в блоге: 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
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
05.01.2012, 11:04 #4
Sylar9, можно, и рекомендуется, если ты "Cиплюсплюсешник"
0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,931
Записей в блоге: 1
05.01.2012, 11:09  [ТС] #5
Цитата Сообщение от res Посмотреть сообщение
Sylar9, можно, и рекомендуется, если ты "Cиплюсплюсешник"
а как это можно сделать на С++
0
soon
2541 / 1306 / 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;
}
0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,931
Записей в блоге: 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
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:20 #8
Это функция.
istream::ignore
0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,931
Записей в блоге: 1
05.01.2012, 11:22  [ТС] #9
Цитата Сообщение от soon Посмотреть сообщение
Это функция.
istream::ignore
а что тогда двойка обозначает?
0
soon
2541 / 1306 / 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.
0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,931
Записей в блоге: 1
05.01.2012, 11:34  [ТС] #11
Цитата Сообщение от soon Посмотреть сообщение
Там все написано
а как сделать что бы ноли выводились
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
05.01.2012, 11:41 #12
Цитата Сообщение от Sylar9 Посмотреть сообщение
а как сделать что бы ноли выводились
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
0
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,931
Записей в блоге: 1
05.01.2012, 11:43  [ТС] #13
Цитата Сообщение от soon Посмотреть сообщение
Либо вводить через строку и разбиавть ее.
Либо поставить условие на вывод данных. Если меньше 10, то выводить лидирующий ноль.
это как можно сделать "Если меньше 10, то выводить лидирующий ноль"
0
soon
2541 / 1306 / 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;
1
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,931
Записей в блоге: 1
05.01.2012, 11:46  [ТС] #15
Цитата Сообщение от soon Посмотреть сообщение
Смеетесь что-ли?
C++
1
2
3
if(a < 10)
    std::cout << '0';
std::cout << a;
а га спасибо!!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2012, 11:46
Привет! Вот еще темы с ответами:

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

Не вводится в файл строка - C++
да вот есть программа, сколько не пробывал не работает даже перепробывал в то что в теме...

Вводится последовательность символов - C++
Плизззз решите такую задачку Вводится последовательность символов. Формировать новую строку, состоящую из символов исходной строки,...

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


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
05.01.2012, 11:46
Ответ Создать тему
Опции темы

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