![]() |
|
Модераторы: 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 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |