![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
В текстовом файле в табличном виде хранится информация о количестве и ценах товаров на складе. Добавить в таблицу графу с датами проводимых проверок, а также графу с общими суммами по каждому виду товара.
я написал так:
но препода не устроило, то что дата вводится в виде строки и нет никакой проверки является ли данная строка датой(т.е. можно ввести 50.40.08 и т.п. и программа ругаться не будет) Как реализовать проверку, что у нас вводится - дата или абракадабра? |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
ALI46, распарси ее как-нибудь так:
|
|||
|
||||
| Rififi |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1254 Регистрация: 9.3.2008 Репутация: 11 Всего: 36 |
ALI46,
например можно передать полученные значения функции формирования времени в виде текстовой строки (_tcsftime), или применить регулярное выражение. Это сообщение отредактировал(а) Rififi - 5.5.2008, 12:30 |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
||||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
ALI46, а тебе обязательно, чтобы поле dat было строковым (с ним сложней работать в дальнейшем, имхо)? тебе никто не мешает вводить дату в виде строки и применять к ней sscanf, вместо scanf для ввода и разборки.
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
лучше все же используй strftime
а для даты можно или свою структуру написать, или стандартную использовать |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
вот так что ли присвоить?
и как дату саму вводить теперь? чёто я не понял... |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
http://msdn.microsoft.com/en-us/library/fe06s4ak.aspx
если по-ангельски не очень читаешь, то все равно паопытайся разобраться. что непонятно - спрашуй |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
непонятно, как дату ввести ручками с клавиатуры чтобы присвоить его полю в структуре
как я понял этот код мне запишет в поле dat дату в формате день.месяц.год. но каким должен быть последний параметр я не понимаю |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
В документации посмотри. |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
ошибся - strftime из tm в строку преобразует, а не наоборот...
тогда придется
|
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
Всем большое спасибо!!
вот код
|
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
нуну
не все так просто введи-ка "31.02.01" в дату |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
у нас в феврале 31 день
Это сообщение отредактировал(а) ALI46 - 5.5.2008, 19:33 |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
исправил код теперь проверяет сответствие месяц-количество дней
вот только снова возник очередной вопрос, как заставить выводить в дате недостающие нули для дней, месяцев, годов меньше 10 ? а то вводишь "02.03.04" а в файле выдаёт "2.3.4" Это сообщение отредактировал(а) ALI46 - 5.5.2008, 22:22 |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
ALI46, ты документацию на функции по религиозным мотивам не читаешь? Даю прямую наводку - читай про спецификаторы функции printf.
|
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
bsa, читаю, и религиозные мотивы тут не при чём, вот я так и подумал что в printf есть то что мне нужно, но видимо плохо искал, спасибо, что подсказал!
код (надеюсь что окончательный
Это сообщение отредактировал(а) ALI46 - 5.5.2008, 23:50 |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
сегодня показал преподу прогу, ему не понравилось что нет проверки на високосность года(ну это ещё ладно), но главная претензия меня окончательно добила - "вы программируете на C++, а не на C поэтому чтоб никаких printf() scanf() fprintf() fscanf() и т.п. не было!"
как реализовать ввод/вывод даты через потоки? |
|||
|
||||
| Alek86 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1299 Регистрация: 30.1.2007 Где: Киев Репутация: 21 Всего: 25 |
молодец препод!!!
подключай iostream, читай доки |
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
||||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
написал с потоками, но как описать ввод даты не знаю((((((
|
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
ALI46, ты не поверишь!
|
|||
|
||||
| ALI46 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 1.5.2008 Репутация: нет Всего: нет |
bsa, действительно бы не поверил)))
спасибо большое всем кто помогал!!! теперь високосные тоже учитывает
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |