免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1621 | 回复: 7
打印 上一主题 下一主题

[C++] UNIX下C++调用标准C函数应注意什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-16 11:24 |只看该作者 |倒序浏览
如题。
或:mktime等c函数在C++中是否有对应函数?

论坛徽章:
0
2 [报告]
发表于 2003-06-16 11:30 |只看该作者

UNIX下C++调用标准C函数应注意什么?

c++中可以直接调用标准c函数

只要man 有页面就可以使用

论坛徽章:
0
3 [报告]
发表于 2003-06-16 11:32 |只看该作者

UNIX下C++调用标准C函数应注意什么?

另外c++中可以使用两种头文件
一种是和c一样的
如stdio.h

另一种是c++封装的
如上面对应为
cstdio
注意前面加了个c,后面没有.h
并且这些函数都在std namespace内

调用时与c中调用没有区别

论坛徽章:
0
4 [报告]
发表于 2003-06-16 13:23 |只看该作者

UNIX下C++调用标准C函数应注意什么?

补充一下,建议两种包含头文件的方法不要混合使用。呵呵

论坛徽章:
0
5 [报告]
发表于 2003-06-16 16:28 |只看该作者

UNIX下C++调用标准C函数应注意什么?

多谢各位大虾!

  1. #include <iostream.h>;
  2. #include <stdlib.h>;
  3. #include <time.h>;
  4. #include <stdio.h>;

  5. class Date
  6. {
  7.         public:
  8.                 Date()
  9.                 {
  10.                         year = 0;
  11.                         month = day = 1;
  12.                 };
  13.                 Date(int d, int m, int y)
  14.                 {
  15.                         year = y;
  16.                         month = m;
  17.                         day = d;
  18.                 };
  19.                 void display()
  20.                 {
  21.                         cout << year << "年" << month << "月" << day << "日" << endl;
  22.                 };
  23.                 Date operator +(const int &days);
  24.         private:
  25.                 int        year;
  26.                 int        month;
  27.                 int        day;
  28. };

  29. inline Date Date::operator +(const int &days)
  30. {
  31.         struct tm stcTime, *newday;
  32.         time_t        tTimes1 = 0, tTimes2 = 0;
  33.        
  34.         stcTime.tm_year = year;
  35.         stcTime.tm_mon = month - 1;
  36.         stcTime.tm_mday = day;
  37.         stcTime.tm_hour = 0;
  38.         stcTime.tm_min = 0;
  39.         stcTime.tm_sec = 0;
  40.        
  41.         tTimes1 = mktime( &stcTime );//[color=red]这里返回-1,不知何问题?[/color]
  42.        
  43.         tTimes2 = days*24*60*60;
  44.         newday = localtime( &tTimes2 );//[color=red]这里应该是newday->;tm_mday == 21,可实际是newday->;tm_mday == 22[/color]
  45.         cout << newday->;tm_mday << "\t" << newday->;tm_mon + 1 << "\t" << newday->;tm_year + 1900 << endl;
  46.         cout << tTimes1 << "\t" << tTimes2 << endl;
  47.         tTimes2 += tTimes1;
  48.        
  49.         newday = localtime( &tTimes2 );
  50.        
  51.         return Date(newday->;tm_mday, newday->;tm_mon + 1, newday->;tm_year + 1900);
  52. }


  53. void main()
  54. {
  55.         Date        olddate(2, 20, 1998);
  56.         Date        newdate;
  57.        
  58.         olddate.display();
  59.         newdate = olddate + 21;
  60.         newdate.display();
  61. }
复制代码


不知是不是编译器的问题?
/opt/CC/bin/CC -Aa -g -w -o /opt/cnc/bin/Date Date.o -lm -lc

请指教!

论坛徽章:
0
6 [报告]
发表于 2003-06-17 07:56 |只看该作者

UNIX下C++调用标准C函数应注意什么?

up

论坛徽章:
0
7 [报告]
发表于 2003-06-17 09:38 |只看该作者

UNIX下C++调用标准C函数应注意什么?

Date(int d, int m, int y)
Date   olddate(2, 20, 199; 这是几月几日?

你没有Debugger?

论坛徽章:
0
8 [报告]
发表于 2003-06-18 09:19 |只看该作者

UNIX下C++调用标准C函数应注意什么?

原帖由 "fieryfox" 发表:
Date(int d, int m, int y)
Date   olddate(2, 20, 199; 这是几月几日?

你没有Debugger?
  

多谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP