c++在linux和在 windows下有区别?
-
- 帖子: 247
- 注册时间: 2008-09-23 21:13
c++在linux和在 windows下有区别?
在看一本c++的书,显然是在windous下写的。按书输入了如下程序:
#include<iostream.h>
union time
{
int year;
int month;
int day;
};
void main()
{
time today,yesterday,tomorow;
today.year=2004;
today.month=3;
tonday.day=20;
yesterday.year=today.year;
tomorow.year=today.year;
yesterday.month=today.month;
tomorow.month=today.month;
yesterday.day=today.day-1;
tomorow.day=today.day+1;
cout<<"Output yesterday's date:"<<end1;
cout<<yesterday.year<<end1;
cout<<yesterday.month<<end1<<yesterday.day<<end1;
却出现如下错误:
union.c:1:22: 错误: iostream.h:没有该文件或目录
union.c: 在函数‘main’中:
union.c:11: 错误: ‘time’未声明 (在此函数内第一次使用)
union.c:11: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
union.c:11: 错误: 所在的函数内也只报告一次。)
union.c:11: 错误: expected ‘;’ before ‘today’
union.c:12: 错误: ‘today’未声明 (在此函数内第一次使用)
union.c:14: 错误: ‘tonday’未声明 (在此函数内第一次使用)
union.c:15: 错误: ‘yesterday’未声明 (在此函数内第一次使用)
union.c:16: 错误: ‘tomorow’未声明 (在此函数内第一次使用)
union.c:21: 错误: ‘cout’未声明 (在此函数内第一次使用)
union.c:21: 错误: ‘end1’未声明 (在此函数内第一次使用)
union.c:10: 警告: ‘main’的返回类型不是‘int’
什么原因呢?
#include<iostream.h>
union time
{
int year;
int month;
int day;
};
void main()
{
time today,yesterday,tomorow;
today.year=2004;
today.month=3;
tonday.day=20;
yesterday.year=today.year;
tomorow.year=today.year;
yesterday.month=today.month;
tomorow.month=today.month;
yesterday.day=today.day-1;
tomorow.day=today.day+1;
cout<<"Output yesterday's date:"<<end1;
cout<<yesterday.year<<end1;
cout<<yesterday.month<<end1<<yesterday.day<<end1;
却出现如下错误:
union.c:1:22: 错误: iostream.h:没有该文件或目录
union.c: 在函数‘main’中:
union.c:11: 错误: ‘time’未声明 (在此函数内第一次使用)
union.c:11: 错误: (即使在一个函数内多次出现,每个未声明的标识符在其
union.c:11: 错误: 所在的函数内也只报告一次。)
union.c:11: 错误: expected ‘;’ before ‘today’
union.c:12: 错误: ‘today’未声明 (在此函数内第一次使用)
union.c:14: 错误: ‘tonday’未声明 (在此函数内第一次使用)
union.c:15: 错误: ‘yesterday’未声明 (在此函数内第一次使用)
union.c:16: 错误: ‘tomorow’未声明 (在此函数内第一次使用)
union.c:21: 错误: ‘cout’未声明 (在此函数内第一次使用)
union.c:21: 错误: ‘end1’未声明 (在此函数内第一次使用)
union.c:10: 警告: ‘main’的返回类型不是‘int’
什么原因呢?
念几句佛经就以为自己在悟道,引用几句圣经就以为自己是上帝的使者。
躲在阴暗的角落就以为看不见你那肮脏的灵魂?
游走在灰色领域就以为安然无恙?
举头三尺有神明,不是不报是时候未到。
躲在阴暗的角落就以为看不见你那肮脏的灵魂?
游走在灰色领域就以为安然无恙?
举头三尺有神明,不是不报是时候未到。
-
- 帖子: 156
- 注册时间: 2008-06-21 17:20
- 联系:
Re: c++在linux和在 windows下有区别?
没找到iostream.h是include的路径没设对。
文件扩展名.c可能会对编译器有影响,比如IDE可能会自动调用c的编译器而不是c++的编译器进行编译从而产生问题。尝试改成.cpp。
那个不是end1,是endl。注意数字1和字母l的区别。
union我没用过,不了解有没有问题。
文件扩展名.c可能会对编译器有影响,比如IDE可能会自动调用c的编译器而不是c++的编译器进行编译从而产生问题。尝试改成.cpp。
那个不是end1,是endl。注意数字1和字母l的区别。
union我没用过,不了解有没有问题。
我的游记和相册:http://www.wensh.net
- cnkilior
- 论坛版主
- 帖子: 4984
- 注册时间: 2007-08-05 17:40
Re: c++在linux和在 windows下有区别?
#include<iostream.h>----->#include<iostream>
-
- 帖子: 7
- 注册时间: 2008-04-25 23:18
- 来自: WHUT
Re: c++在linux和在 windows下有区别?
楼主看的这书质量不太好,已经落后于标准了。新的c++标准规定只有iostream,而没有iostream.h,等等。楼主的代码即使在windows下也会发现在vc6可以正常运行,而在vs2003以上就会报错。
- fearmind
- 帖子: 212
- 注册时间: 2007-08-24 13:32
Re: c++在linux和在 windows下有区别?
用标准C就行了
- xizhi.zhu
- 帖子: 46
- 注册时间: 2008-09-20 4:47
- 来自: Tampere
- 联系:
Re: c++在linux和在 windows下有区别?
#include <iostream>
using namespace std;
using namespace std;
-
- 帖子: 105
- 注册时间: 2007-04-21 11:57
Re: c++在linux和在 windows下有区别?
太夸张了吧,把年月日的结构定义成了 union 联合类型, 能用来表示年月日吗?
-
- 帖子: 1
- 注册时间: 2007-08-31 22:58
Re: c++在linux和在 windows下有区别?
这书是不是清华的,清华的计算机,绝大多数是次品。
- 自由建客
- 帖子: 13468
- 注册时间: 2008-07-30 23:21
- 系统: Debian stable AMD64
Re: c++在linux和在 windows下有区别?
phil1984 写了:这书是不是清华的,清华的计算机,绝大多数是次品。
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
Re: c++在linux和在 windows下有区别?
1. ???.h 的头文件是过时的。但是LZ是找不到,看来是没安装开发包
2. union time today,yesterday,tomorrow;
3. tonday 打错了
4. endl 不是 end1 。。。
不过上面的都是小问题,最大的问题见 7 楼
2. union time today,yesterday,tomorrow;
3. tonday 打错了
4. endl 不是 end1 。。。
不过上面的都是小问题,最大的问题见 7 楼
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
-
- 帖子: 2841
- 注册时间: 2006-09-11 22:47
Re: c++在linux和在 windows下有区别?
如果只是要问windows/linux的区别的话,这么说:vitamin 写了:在看一本c++的书,显然是在windous下写的。按书输入了如下程序:
什么原因呢?
1。Linux下有gcc和g++都可以作为标准的C++编译器,而Windows下只有C++编译器。这个区别是:gcc编译器会根据文件后缀把.c文件当作C语言编译,而g++和windows下的c++会把所有程序都当作C++编译。——因此你的程序取名 .c ,在 windows下可以编译,在 gcc 下会被当作c程序。
2。其他的错误别人都说了。至于那个union的问题很变态,但是考虑的楼主是在抄书,只能认为这本书是故意在举一个错误的编程例子。
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
- shellex
- 帖子: 2180
- 注册时间: 2007-02-18 19:33
- 系统: OSX
- 来自: lyric.im
- 联系:
Re: c++在linux和在 windows下有区别?
,,,
既然你诚心诚意地问了
我就大慈大悲地告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的罪恶
可爱而又迷人的反派角色
武藏,小次郎
我们是穿越银河的火箭队,白洞白色的明天在等着我们。就是这样!!喵~~
我就大慈大悲地告诉你
为了防止世界被破坏
为了维护世界的和平
贯彻爱与真实的罪恶
可爱而又迷人的反派角色
武藏,小次郎
我们是穿越银河的火箭队,白洞白色的明天在等着我们。就是这样!!喵~~
-
- 帖子: 3
- 注册时间: 2008-11-20 10:02
Re: c++在linux和在 windows下有区别?
头文件引入的问题,应该使用心得标准#include<iostream>并且要使用命名空间using namespace std;才可以直接使用cin>>和cout<<否则要这样使用std::cin>> std::cout<<
应该是你使用的教材不太好 有点老了.
应该是你使用的教材不太好 有点老了.
-
- 帖子: 247
- 注册时间: 2008-09-23 21:13
Re: c++在linux和在 windows下有区别?
BigSnake.NET 写了:1. ???.h 的头文件是过时的。但是LZ是找不到,看来是没安装开发包
2. union time today,yesterday,tomorrow;
3. tonday 打错了
4. endl 不是 end1 。。。
不过上面的都是小问题,最大的问题见 7 楼
开发包?怎么装?
念几句佛经就以为自己在悟道,引用几句圣经就以为自己是上帝的使者。
躲在阴暗的角落就以为看不见你那肮脏的灵魂?
游走在灰色领域就以为安然无恙?
举头三尺有神明,不是不报是时候未到。
躲在阴暗的角落就以为看不见你那肮脏的灵魂?
游走在灰色领域就以为安然无恙?
举头三尺有神明,不是不报是时候未到。