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

тип time_t - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 22, средняя оценка - 4.91
Roma4717
 Аватар для Roma4717
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 22
05.05.2013, 12:21     тип time_t #1
Нужно ввести 2 переменные типа time_t с клавиатуры , потом переконвертировать их в строки и записать в файл. В процессе исполнения программы вылетает ошибка: Debug assertion failed. Expression: invalid null pointer.
Что за такой невалидный нуль указатель не пойму.
Даты вводил и в таком виде(25.11.2012 20:00:00) и в таком (Web Feb 13 16:06:10 2013) результат не меняется, все равно программа вылетает.
Помогите пожалуйста разобраться
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
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
#include <time.h>
using namespace std;
int main()
{
string usluga1, usluga2;
string DATE_1, DATE_2;
time_t date_1,date_2;
cout<<"\nrequest:\n";
cin>> usluga1>>usluga2;
cin>>date_1>>date_2; 
DATE_1=ctime(&date_1); 
DATE_2=ctime(&date_2);
cout<<"begins recording parameters in the file param.ini ..."<<endl;  
fstream Param;
Param.open( "D:\\project\\ind_project\\param.ini", ios_base::out);  
if (!Param)
{
    cout<<"can not open the file for writing!";
    return 1;
}
Param<<usluga1<<", "<<usluga2<<endl<<DATE_1<<' '<<DATE_2<<endl;
Param.close();
_getch();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
05.05.2013, 15:14     тип time_t #2
time_t - это целое число (означающее количество секунд, прошедших с 1 января 1970 года)
Roma4717
 Аватар для Roma4717
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 22
05.05.2013, 15:31  [ТС]     тип time_t #3
Evg, это я понимаю просто перевожу через ctime время или целое long в строку и потом записываю в файл , все компилируется но при исполнении программы выскакивает ошибка которую описал выше , пробывал уже конвертировать через _itoa при этом заменив 11 строку на
C++
1
char *DATE_1, *DATE_2;
также при исполнение появляется ошибка: the variable 'DATE_1' is being used without being initialized.
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
05.05.2013, 15:39     тип time_t #4
Ну ты уж тогда смотри, в каком конкретно месте у тебя падает. Для быстрой воспроизводимости ошибок всегда следует заменить ввод (в твоём случае cin) на непосредственную запись значения в переменные. Короткий пример на основе твоей программы работает нормально: http://codepad.org/E6yioBvn

Добавлено через 1 минуту
Я не знаю, как работает cin, когда в одной строке заданы сразу две переменные и когда строка содержит пробелы. После cin'ов ради интереса воткни cout'ы, чтобы проверить, что у тебя на самом деле ввелось

Добавлено через 54 секунды
Цитата Сообщение от Roma4717 Посмотреть сообщение
пробывал уже конвертировать через _itoa при этом заменив 11 строку на
Это я вообще не понял
Roma4717
 Аватар для Roma4717
0 / 0 / 0
Регистрация: 12.02.2013
Сообщений: 22
05.05.2013, 16:03  [ТС]     тип time_t #5
Evg, спасибо за советы сейчас буду разбираться
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.05.2013, 07:19     тип time_t #6
Цитата Сообщение от Evg Посмотреть сообщение
Я не знаю, как работает cin, когда в одной строке заданы сразу две переменные и когда строка содержит пробелы. После cin'ов ради интереса воткни cout'ы, чтобы проверить, что у тебя на самом деле ввелось
Так же, как если бы они вводились последовательно. Разве можно считать строку с пробелами не прибегая к какому-нибудь getline?
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
06.05.2013, 16:53     тип time_t #7
Цитата Сообщение от Tulosba Посмотреть сообщение
Разве можно считать строку с пробелами не прибегая к какому-нибудь getline?
Я не знаю, я на Си++ не программирую
Я просто тебе описал общий подход, как искать проблему (а не как её решать)
Tulosba
06.05.2013, 16:58
  #8

Не по теме:

Цитата Сообщение от Evg Посмотреть сообщение
Я не знаю, я на Си++ не программирую
Эксперт C++
Автор FAQ
я чего-то не понимаю

Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16828 / 5249 / 321
Регистрация: 30.03.2009
Сообщений: 14,132
Записей в блоге: 26
06.05.2013, 17:08     тип time_t #9
Цитата Сообщение от Tulosba Посмотреть сообщение
я чего-то не понимаю
Значок "Эксперт Си++" выдавался по соображениям прав доступа в раздел форума для экспертов. Значков "Эксперт Си" нету, поэтому приходится носить "Эксперт Си++". То, что я не программирую на Си++, вовсе не означает, что этот язык я не понимаю, но такие тонкости, как пробелы во входном потоке, я не знаю, т.к. не имею соответствующей практики
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2013, 17:10     тип time_t
Еще ссылки по теме:

C++ из string в time_t
C++ конвертировать char* в time_t C++
C++ Конветирование строки char в time_t или в struct tm

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

Или воспользуйтесь поиском по форуму:
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.05.2013, 17:10     тип time_t #10
Evg, спасибо за справку
Yandex
Объявления
06.05.2013, 17:10     тип time_t
Ответ Создать тему
Опции темы

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