Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что неправильно в синтаксисе? работа со врменем 
:(
    Опции темы
kaa
Дата 12.10.2006, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: нет
Всего: 2



В общем есть код, написан по новому стандарту С++

Код

#include <iostream>
#include <time>
#include <iomanip>
using namespace std;

int main()
{
    time_t cur_time;
    time(&cur_time);
    cout<<"Current time: "<<cur_time<<endl; 
}


Так при компиляции выдаётся ошибка

Код

time: No such file or directory



НО! Если написать так:
Код

#include <iostream>
#include <time.h>
#include <iomanip>
using namespace std;

int main()
{
    time_t cur_time;
    time(&cur_time);
    cout<<"Current time: "<<cur_time<<endl; 
}


то всё работает. Почему?
И вообще, есть-ли смысл следовать новому стандарту включения заголовочных файлов?
PM MAIL   Вверх
vinter
Дата 12.10.2006, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата

И вообще, есть-ли смысл следовать новому стандарту включения заголовочных файлов?

конечно следует, заголовочные файлы перекочевавшие из С следует писать спрефиксом с, т.е
Код

#include <ctime>



--------------------
Мой блог
PM MAIL WWW   Вверх
kaa
Дата 12.10.2006, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 817
Регистрация: 5.11.2005

Репутация: нет
Всего: 2



vinter, ЭХ ты! А как я узнаю какие из С а какие нет? Где это можно посмотреть? Я вот токаща узнал что time.h из С пришол smile
PM MAIL   Вверх
Xenon
Дата 12.10.2006, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1529
Регистрация: 12.4.2006

Репутация: 11
Всего: 50



kaa, ну да, нужно просто знать откуда какая библиотека smile Да и, по-мойму, не составляет труда добавить .h и его убрать? smile Можешь посмотреть в директории компилятора библиотеки.


--------------------
user posted image  
PM MAIL   Вверх
Ignat
Дата 13.10.2006, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 3
Всего: 73



Цитата(kaa @  12.10.2006,  22:57 Найти цитируемый пост)
#include <iomanip>

А это еще зачем в данной программулине?

Заголовки ctime или time.h не должны изменить поведение программы.
Кстати, содержимое ctime gcc:

Код

// The -*- C++ -*- time header.
// This file is part of the GNU ANSI C++ Library.

#ifndef __CTIME__
#define __CTIME__
#include <time.h>
#endif


Вот вам и разница smile


--------------------
Теперь при чем :P
PM   Вверх
vinter
Дата 13.10.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата

Кстати, содержимое ctime gcc:

оно много где такое, просто по стандарту .h не ставится..


--------------------
Мой блог
PM MAIL WWW   Вверх
Ignat
Дата 13.10.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 3
Всего: 73



Цитата(vinter @  13.10.2006,  12:52 Найти цитируемый пост)
оно много где такое

Не обязательно. Например, MSVC7 при данном инклюде, помнится, делает резрешение нэймспейсов.


--------------------
Теперь при чем :P
PM   Вверх
JackYF
Дата 13.10.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



kaa,

Насчет библиотек нового стандарта:

Если библиотека называлась stdlib.h, в новом стандарте cstdlib
Если time.h, то ctime...

То есть убирается .h и добавляется впереди символ c.

Так со всеми библиотеками, которые пришли из языка C и старого С++.

А вообще смысл тебе подключать новые библиотеки, если сразу делаешь
Код

using namespace std;


Ты б уже ставил
Код

std::time_t
....
std::time
...
std::cout


P.S
Вообще не рекомендуется вносить в глобальную область все имена из пространства std...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
vinter
Дата 13.10.2006, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата

А вообще смысл тебе подключать новые библиотеки, если сразу делаешь

в смысле ?? а как одно к другому относится??



--------------------
Мой блог
PM MAIL WWW   Вверх
JackYF
Дата 13.10.2006, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



В прямом. Оберточные файлы <cstdlib>, <csdtio>, <ctime> и иже с ними составляют собой простую обертку к тому, что предоставляют эти библиотеки.

Обертку в пространство имен std.

Так вот, при объявлении

Код

using namespace std;


Вся польза от этих оберток летит компилятору под ... .
Вот такая вот зависимость...  smile

Добавлено @ 18:31 
Эти библиотеки - в плане старостандартовские.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Daevaorn
Дата 13.10.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(JackYF @  13.10.2006,  19:31 Найти цитируемый пост)
Обертку в пространство имен std.

Ну вот как раз <cstdlib>, <csdtio>, <ctime> в неймспейсы не оборачиваются.
Код

#include <cstdio>

int main()
{
    puts( "FCSM-forever!" );
    return 0;
}

PM MAIL WWW   Вверх
Ignat
Дата 13.10.2006, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 3
Всего: 73



Цитата(Daevaorn @  13.10.2006,  20:02 Найти цитируемый пост)
Ну вот как раз <cstdlib>, <csdtio>, <ctime> в неймспейсы не оборачиваются.

Зависит от конкретной реализации стандартной библиотеки. По стандарту не должны.


--------------------
Теперь при чем :P
PM   Вверх
JackYF
Дата 13.10.2006, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 18
Всего: 162



Не знаю насчет puts, а вот time, memset, memcpy, itoa, atoi и иже с ними - точно. 

А вообще - какой у тебя компилятор? и сборка стандартной библиотеки?

Добавлено @ 19:24 
Ignat, разве? Тогда, возможно, я не прав...

Добавлено @ 19:32 
Но тогда вообще странно, что они тогда делают...


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Daevaorn
Дата 13.10.2006, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Цитата(JackYF @  13.10.2006,  20:23 Найти цитируемый пост)
Не знаю насчет puts, а вот time, memset, memcpy, itoa, atoi и иже с ними - точно. 

тоже нет
Цитата(JackYF @  13.10.2006,  20:23 Найти цитируемый пост)
А вообще - какой у тебя компилятор? и сборка стандартной библиотеки?

vc80.комплект поставки


PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.