标题: 关于头文件的 问题
rage_YAS
新生入学
Rank: 1
注册用户



UID 197061
精华 0
积分 0(积分有什么用?)
帖子 14
阅读权限 10
注册 2007-5-28
状态 离线
发表于 2007-6-4 18:11  资料  个人空间  短消息  加为好友 
关于头文件的 问题

我 写 的 小程序 中,用的 了#include <iosream>这个头文件,因为我要 用 cout这个函数,这个头文件,应该是 c++的标准头文件,只要是 C++都可以使用的 。Linux伊甸园论坛9BKw9z c N
程序很简单,如下 :
-~0_1|9d m_C5kc#include <iostream>www.linuxeden.com3O.Vg(AW d
i(C
_(t*bO'N

q'l*a4w/m-iG8X`2aQ0v
int main()www.linuxeden.comUP
q Rz,UH9l

{www.linuxeden.comV%t*B7`MtR_
    cout <<"this is test.edited by yas\n"<<endl;
+P,xZ t;h0uh    return 1;
hC8Lc,h-T,^*h5Twww.linuxeden.com}
I)fC(sZT~7c3Na0i
@1Y/T2C)X!s然后执行:Linux伊甸园论坛
}-Cz@tN.anR/bC

[root@localhost ctest]# g++ -c unnamed1.cpp?
j#M:_:J G\

unnamed1.cpp: In function ‘int main()’:
GZeM1y\unnamed1.cpp:6: 错误:‘cout’ 在此作用域中尚未声明*FVU2jv1L-G'j
unnamed1.cpp:6: 错误:‘endl’ 在此作用域中尚未声明
Jx4mqc#^.ywww.linuxeden.com
oM7s0G'u D#CO

就报警了 。www.linuxeden.com6odS/L'uM%?K3vs*{
兄弟们,给我些指示阿。K)y"QO.|
用 #inculde<stdio>和printf();就可以 。{I RM8ez#h|
希望,兄弟们,照顾 我这个,在成长中的 小菜鸟了 rN"S$B/q}b:a
兄弟 ,深深 谢过了 。Linux伊甸园论坛)W`O5q2o
Linux伊甸园论坛&\jL vS8|
i4f:to

[ 本帖最后由 rage_YAS 于 2007-6-4 18:33 编辑 ]

顶部
rage_YAS
新生入学
Rank: 1
注册用户



UID 197061
精华 0
积分 0(积分有什么用?)
帖子 14
阅读权限 10
注册 2007-5-28
状态 离线
发表于 2007-6-4 18:52  资料  个人空间  短消息  加为好友 
以下是我引用别人的 “”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”C*``b6Y(Fw*y

W1td9Z4K\+i:ZLinux伊甸园论坛 在群里看到这么一行代码:#include "iosteam.h"
a0w8Nj:P$F;k:`www.linuxeden.com Linux伊甸园论坛
R0c9uadJe

    开始我很吃惊,这人太有才了,佩服撒,居然想到用引号来写系统文件?干吗不用尖括号呢?当然了,这样子写,编译器不会有任何警告,也不会告诉我们这样子是错的,表面上看上去还真是没影响,其实不是的,下面说下这两种写法的一点点区别,希望对初学者有点帮助,从开始养成好习惯对以后会有很大的帮助的。
^"d)Bj
k#W B3Tl
www.linuxeden.com8?,G;op8Sx
    #include 后的文件名用尖括号(<>)括起来,说明这个头文件是系统提供的,编译程序时,编译器会直接到系统目录下去查找该头文件并加载之。Linux伊甸园论坛r+qf(]2A no
    #include 后的文件名用引号("")引起来,一般用于自定义头文件,当编译程序时,编译器会先到当前工程目录下去寻找该文件,如果找不到会再到系统目录下去寻找。如:我们采用多文件结构定义一个类的时候,类的声明写在:类名.h中,;类的实现写在类名.cpp中,我们需要在类名.cpp中加上头文件"类名.h";
GSw-n2b?        {Hu www.linuxeden.com:N-?/p#T|re"Vy }
   另外,在标准c++中头文件是不带后缀.h的:
Bq/E jZLinux伊甸园论坛即:#include <iostream.h>应该写为#include <iostream>,也许有人会问,如果这样子写,不能在程序中直接使用cout/cin等,的确,因为采用#include <iostream>要包含命名空间std才能直接使用cout/cin,否则就要在该头文件中定义的函数/变量前加上std::来表示调用函数/变量的来源...
(w/{'D%J/|cGkI  
EkG#JQ*C|,i   还有一点,大家会发现好多头文件是以字母c开头的,如:cmath,cstdio,cstring等,因为这些是继承的c的头文件,用来区分c++自己的头文件,c++中可以使用#include <math.h>来直接使用c的头文件,但是不赞成使用该方法,建议使用#include <cmath>.....-R`fQ6TYL
Linux伊甸园论坛#E9WTw1W
   以上是对c++中头文件的一点看法,有不对的地方请留言告诉我,或者耽误您的时间给我发邮件:zjc196@163.com,您让我学到的任何知识,我都会感激的...
5vQY)`;{:H#k n  /W!D*C1At [ Zs
   写的有点乱....:\!b@7w5W$m
Linux伊甸园论坛L/aR V/b}d$a-p_
“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”Linux伊甸园论坛"p]!fnu

9v5|]1W9{.g)?g
)a:F3Gou&k'V        GF
fY7|"K3X6ywww.linuxeden.com我写的那个小程序中,把 cout ,endl写成,std::cout 和std::endl,就可以 通过编译了 ,我很感谢他。Linux伊甸园论坛~7]6{Uc$c3b:J(j!o
K`sW.M,F'_
希望给大家 有所帮助,另外,我还是不清楚,怎么作就可以 直接用cout,endl,不知道怎么包含命名空间std。.Ud6|"k1G#a4N
希望兄弟们,指点阿。

^5v&Q-JL%uerN)dwww.linuxeden.com
o        J;Q^#Fm3z's
[ 本帖最后由 rage_YAS 于 2007-6-4 18:53 编辑 ]

顶部
不容错过的IBM 集群技术资源汇总
rage_YAS
新生入学
Rank: 1
注册用户



UID 197061
精华 0
积分 0(积分有什么用?)
帖子 14
阅读权限 10
注册 2007-5-28
状态 离线
发表于 2007-6-4 19:06  资料  个人空间  短消息  加为好友 
兄弟们,我找的答案了 Linux伊甸园论坛;G%q8f&f`3DC
S

5k$zuT7N!HFo
在 #include <iostream>
(w!DpL~        t`n1X(y下面加上这句;3W}(H,XG
using namespace std;

顶部
zkj2007
新生入学
Rank: 1
注册用户



UID 196210
精华 0
积分 0(积分有什么用?)
帖子 3
阅读权限 10
注册 2007-5-13
状态 离线
发表于 2007-6-5 09:57  资料  个人空间  短消息  加为好友 
对cout的另一种写法

可以不用using namespace std;
T
zI1n9U9SQ
Linux伊甸园论坛?X$e y3J`BC
在使用cout时,可以这样写:std::cout
-\,g9kq%fAwMgJl        U!J+gAqX|
我也是才开始学C++,在家相互学习

顶部
不容错过的IBM 集群技术资源汇总
MMMIX
小试牛刀
Rank: 2
注册用户



UID 147141
精华 0
积分 0(积分有什么用?)
帖子 79
阅读权限 10
注册 2006-1-11
状态 离线
发表于 2007-6-8 01:41  资料  个人空间  短消息  加为好友 


QUOTE:
原帖由 rage_YAS 于 2007-6-4 19:06 发表
e6W/i
ccA:Zy
兄弟们,我找的答案了
%J/x/sJuT'?/}b,S
u-P&I;{5l)fG在 #include I3?|f;nu
下面加上这句;
kx$@PWANULinux伊甸园论坛using namespace std;

Linux伊甸园论坛`
}Iv7Ged8@

这个还要找?书上没有讲?

顶部
 



当前时区 GMT+8, 现在时间是 2008-5-17 10:56

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.102642 second(s), 5 queries

清除 Cookies - 联系我们 - Linux伊甸园 - Archiver - WAP