精华内容
下载资源
问答
  • iostream.h头文件

    2019-02-11 22:59:02
    解决部分源文件无法打开的问题,在VS2015的环境下,部分源文件无法打开,可能是源文件库中的源文件缺失了.h后缀,从程序的安装路径中找到文集库,给对应的源文件加上后缀就可以了
  • 以下是对C++中iostreamiostream.h的区别进行了详细的分析介绍,需要的朋友可以过来参考下
  • IOSTREAM.H

    千次下载 热门讨论 2012-03-01 14:32:43
    IOSTREAM.H文件VS2003后没的
  • C++中的iostreamiostream.h

    千次阅读 2018-08-24 15:15:54
    iostream.h>与<iostream>这两个库就是C++ 标准化前/后的两个库,现在都在并行使用。用 .h 包含的是C++ 标准化之前的库 ,不带 .h 的是C++ 标准化(C++ 98)之后的头文件,对于普通用户来说这...

    0. 序言

    <iostream.h>与<iostream>这两个库就是C++ 标准化前/后的两个库,现在都在并行使用。用 .h 包含的是C++ 标准化之前的库 ,不带 .h 的是C++ 标准化(C++ 98)之后的头文件,对于普通用户来说这两者没有什么区别,区别是在内部函数的具体实现上。

    #include <iostream.h>   //非标准输入输出流,这是标准化以前的头文件(当时还没有命名空间的概念)
    #include <iostream>     //标准输入输出流,这个就是C++98标准化以后的标准头文件
    

    1. C++发展概述

    C++ 是一门以C为基础发展而来的一门面向对象的高级程序设计语言,从1983年由Bjarne Stroustrup教授在贝尔实验室创立开始至今,已有30多个年头。C++ 从最初的C with class,经历了从C++ 98、C++ 03、C++ 11、C++ 14再到C++ 17多次标准化改造,功能得到了极大的丰富,已经演变为一门集面向过程、面向对象、函数式、泛型和元编程等多种编程范式的复杂编程语言,入门具有一定的难度。

    C++ 经历了长时间的发展演变。1954年,John Backus发明了世界上第一种计算机高级语言Fortran,为之后出现的高级编程语言奠定了基础。1970年,AT&T的Bell实验室的 Ken Thompson,以BCPL语言为基础,设计出简单且接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个Unix操作系统。到了1972年,Bell实验室的Dennis Ritchie和Ken Thompson共同发明了C语言,并使用C重写Unix。1979年,Bjame Stroustrup到了Bell实验室,开始从事将C改良为带类的C(C with Classes)的工作,1983年该语言被正式命名为C++,主要意图是表明C++ 是C的增强版,1985年发布了第一个C++ 版本。

    第一个版本的C++,因其面向对象的思想使得编程变得简单,并且又保持了C语言的运行效率,在推出的一段时间内,得到了快速的发展,占据了编程语言界的半壁江山。从1985年到1998年,C++从最初的C with Classes新增了很多其他的特性,比如异常处理、模板、标准模板库(STL)、运行时异常处理(RTTI)与名字空间(Namespace)等。

    1998年,C++ 标准委员会统筹C++ 的所有特性,发布了第一个C++ 的国际标准:C++ 98

    从1998年到2003年,C++ 标准从C++ 98迭代到C++ 03,期间C++ 扩增了很多额外的特性,比如以Boost MPL(Boost Metaprogramming Library)与Loki等为代表的模板元编程库的出现,让开发者更加便捷的使用C++在编译期的执行能力,即通过代码编译获得计算结果,学术性的称为模板元编程。

    到了2003年,C++ 标准委员会总结最新技术并发布了C++ 03标准。

    从2003年到2011年,也就是从C++ 03到C++ 11,期间C++ 引入了对象移动、右值引用、lamba表达式(函数式编程)、编译时类型识别(auto)、别名模板以及很多新型关键词(如nullptr、decltype、constexpr)等现代编程语言常具备的能力,让C++ 与时俱进,开发效率得到了很大的提升。这些新的特性随着C++ 11标准的发布而被正式确立下来。

    近年来,C++ 标准的变更周期缩短,由C++ 11到C++ 14以及最近的C++ 17都只用了3年的时间。C++ 14引入了二进制文字常量、将类型推导从Lambda函数扩展到所有函数、变量模板以及数字分位符等。C++ 14 是对C++ 11的重要补充和优化,是C++ 发展历程中的一个小型版本,虽然新增的内容较少,但是仍然为用户“带来了极大的方便”,为实现使C++ “对新手更为友好”这一目标作出努力。到了2017年,C++ 迎来了C++ 17标准。此次对C++ 的改进和扩增,让C++ 变得更加容易接受和便于使用了。C++ 17引入了许多新的特性,比如类模板参数推导、UTF-8文字常量、fold表达式、新类型以及新的库函数等。

    2. namespace(TODO)

    C++ 标准程序库涵盖范围相当大,提供了大量功能,正因为这样,标准库中class名称和函数名与第三方提供的class和函数名冲突的可能性变大。为避免该冲突的发生,在标准化时特别引入了“名字空间的定义”,即namespace。将所有标准程序库中的东西都放在了namespace std中。

    但是这么做同时有引来了一个新的问题。很多C++ 程序代码依赖那些已经存在很多年的C++ “准”标准程序库(C++迟迟未标准化才导致这些情况的发生),例如iosteam.h,complex.h等等。

    3. 用法区别

    为了解决这个新出现的问题,标准化委员会决定设计一些新的头文件名,给那些穿上std外衣的组件所使用。把C++ 头文件的.h去掉,于是就有前面出现的iostream,同样C的头文件也做了相同的处理,同时在前面加上了一个字母c,以表示是C的头文件(感觉上有种种族歧视的感觉)。

     非标准标准
    C输入输出标准库#include<stdio.h>#include<cstdio>

    同时标准化委员会声明就有的C++头文件将不再列于被支持的名单之中了,而旧有的C头文件为了满足“对C的兼容性”这个古老契约,仍然将继续存活下去。

    当代码中用<iostream.h>时,这时头文件是C语言格式的,尚未出现namespace,输出可直接引用。

    cout<<x;
    //<iostream.h>继承C语言的标准库文件,未引入名字空间定义,所以可直接使用。
    

    当代码中引入<iostream>时,为标准输入输出流,包含在std命名空间内,输出需要引用std命名空间。

    std::cout<<x;
    

    如果还是按原来的方法就会有错。

    使用<iostream>时,引入std::有以下方法:

    1. 使用using编译指令引用整个命名空间。
    using namespace std;    //all names available
    cout << x ;
    

    这个using编译指令使std这个命名空间中的所有名称都可用,这是一种懒惰的做法,在大型项目中有潜在问题。所以更好的做法是按需引用.

    1. 只列出所需的名称。
    using std :: cout;  //make cout available
    cout << x ;
    

    3.基本引用

    std::cout << x;
    

    下面以完整程序,使用cout和endl举例说明。

    3.1 iostream.h 的使用

    iostream.h中函数都是全局的,使用的方法同C相同。

    //example.cpp
    #include <iostream.h>
    
    int main(void)
    {
      cout<<"Hello World"<<endl;
      return 0;
    }
    

    上面的例子examplec.pp使用下面普通的方法编译,甚至提示找不到iostream.h这个头文件

    # g++ example.cpp
    error: iostream.h: No such file or directory
    error: ‘cout’ was not declared in this scope
    error: ‘endl’ was not declared in this scope
    

    没有头文件怎么办呢?这需要安装兼容包,在我的64位系统安装了下面2个包(还有其他包)

    # yum install compat-gcc*
    
    Install compat-gcc-34.x86_64
    Install compat-gcc-34-c++.x86_64
    

    记住上面包的名字中的数字34,在不同系统中可能是不同的,继续编译,注意这次使用的不是g而是g34.

    # g++34example.cpp
     In file included from /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/backward/iostream.h:31, from main.cpp:8: /usr/lib/gcc/x86_64-redhat-linux/3.4.6/../../../../include/c++/3.4.6/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
    

    这次编译有一个很长的warning,意思就是建议使用标准头文件不使用非标准头文件。

    非要使用非标准头文件的时候可以通过添加编译选项-Wno-deprecated 来取消这个warning

    # g++34 -g example.cpp -Wno-deprecated
    

    OK,到此就编译成功了。

    3.2 iostream 的使用

    主要有3种方法,没有最优,只有最合适

    方法1,适用于使用函数个数少,函数使用次数少 的情况

    //example1.cpp
    #include <iostream>
    
    int main(void)
    {
      std::cout<<"Hello World"<<std::endl; //方法1
      return 0;
    }
    

    方法2,适用于使用函数个数少,函数使用次数较多 的情况

    //example2.cpp
    #include <iostream>
    using std::cout;              //方法2
    using std::endl;              //方法2
    
    int main(void)
    {
      cout<<"Hello World"<<endl;
      return 0;
    }
    

    方法3,适用于使用函数个数和函数次数较多 的情况

    //example3.cpp
    #include <iostream>
    using namespace std;            //方法3
    
    int main(void)
    {
      cout<<"Hello World"<<endl;
      return 0;
    }
    

    3.3 建议

    最好使用标准头文件。

    iostream是现在C++ 中规定的标准,目的在于使C++ 代码用于移植和混合嵌入时不受扩展名.h的限制,避免因为.h而造成的额外的处理和修改。

    iostream包含的基本功能和对应的旧头文件相同,但头文件的内容在名字空间std中(在标准化的过程中,库中有些部分的细节被修改了,所以旧头文件和新头文件中的实体不一定完全对应)。

    一般情况下应该用这个头文件,而iostream.h则是老式的,以后有可能被淘汰。

    4. 其他参考

    string.h c标准库提供的字符串函数

    string.h是C语言里面关于字符数组的函数定义的头文件,常用函数有strlen、strcmp、strcpy等等,更详细的信息可以自己查看(面向过程)。

    cstring c标准库提供的字符串函数

    CString常用于MFC编程中,是属于MFC的类,如从对话框中利用GetWindowText得到的字符串就是CString类型,CString定义在afx.h头文件中。CString为Visual C++ 中最常用的字符串类,继承自CSimpleStringT类,主要应用在MFC和ATL编程中,所以使用CString时要包含afx.h文件。

    string c++标准库提供的string类

    string是C++ 标准库(STL)中的类型,它是定义的一个类,定义在string头文件中。里面包含了对字符串的各种常用操作,它较char*的优势是内容可以动态拓展,以及对字符串操作的方便快捷,用+号进行字符串的连接是最常用的操作。

    参考资料

    1. <iostream> 和 <iostream.h>的区别 及 Linux下编译iostream.h的方法
    2. C++ 发展概述
    3. C++ 的发展过程和历史
    4. C++ 元编程和Boost编程库 (C++ Metaprogramming and Boost MPL )上部
    5. #include<string.h>、#include<cstring>与#include<string>的区别
    6. 名字空间-维基百科
    7. C++ 名字空间/C++ 命名空间
    展开全文
  • iostreamiostream.h和stdio.h的区别

    千次阅读 2020-10-07 20:12:23
    iostreamiostream.h和stdio.h的区别#include #include <iostream.h>非标准输入输出流 在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此直接...

    iostream和iostream.h和stdio.h的区别

    #include <iostream.h>非标准输入输出流

    在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此直接#include <iostream.h>是可以的。但到了vs2005,使用了新的C++标准库,只能用#include 。

    #include<iostream 标准输入输出流

    io:in&out stream:流,小溪 意思“输入输出流”,是C++里的I/O方面的头文件,里面包括一切输入输出的函数调用,一般console下都要用到。

    stdio.h是C语言的东西,输入输出是这样的printf(…);,scanf(…);
    iostream.h是C++的东西,输入输出是这样的cout<<…;,cin>>…;
    stdio.h是C的标准I/O库,是以函数的方式向buffer写入或读取字符。
    iostream是C++的标准I/O库,引入了输入/输出流的概念,是一个类库,是以类方法从streambuf中读取,写入字符。

    展开全文
  • iostream.h>区别为:来源不同、命名空间不同、移植不同。 一、来源不同 1、include<stdio.h> :include<stdio.h> 是C标准库里面的函数库,对应的基本都是标准输入输出等C语言常用库的定义。 2、...

    include<stdio.h> 和include<iostream.h>区别为:来源不同、命名空间不同、移植不同。

    一、来源不同

    1、include<stdio.h> :include<stdio.h> 是C标准库里面的函数库,对应的基本都是标准输入输出等C语言常用库的定义。
    2、include<iostream.h>:include<iostream.h>是C++标准库的函数库,对应的基本上是C++的输入输出相关库定义。

    开发C程序用stdio,C++用stdio/iostream 都可以,最好是用iostream。
    #include<stdio.h>是C的标准库,用scanf和printf;#include< iostream>用cin和cout。

    二、命名空间不同

    1、include<stdio.h> :引用include<stdio.h>的类需要手动添加命名空间。
    2、include<iostream.h>:引用include<iostream.h>的类默认自动添加命名空间。

    C++时,推荐使用

    #include<iostream>
    using namespace std;
    

    < iostream>和<iostream.h>的区别?

    #include <iostream.h>//非标准输入输出流
    #include < iostream>//标准输入输出流
    

    C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。
    1.当代码中用<iostream.h>时,输出可直接引用cout<<x;//<iostream.h>继承C语言的标准库
    文件,未引入名字空间定义,所以可直接使用。

    2.当代码中引入< iostream>时,输出需要引用std::cout<<x;如果还是按原来的方法就会有错。
    使用< iostream>时,引入std::有以下方法:

    using namespace std; 
    cout<<x; 
    
    using std::cout;
    cout<<x;
    
    std::cout<<x;//最基本的
    

    三、移植不同

    1、include<stdio.h> :include<stdio.h> 不可用于移植和混合嵌入。

    2、include<iostream.h>:include<iostream.h>可用于移植和混合嵌入。

    < iostream>和<iostream.h>在接口和执行上都是不同的
    < iostream>的各组成都是以STL的形式声明的,然而<iostream.h>的各组成都是声明成全局型的。
    你不能在一个程序中混淆使用这两个库。做为一种习惯,在新的代码中一般使用< iostream>,但如果你处理的是过去编写的代码,为了继承可以用继续用<iostream.h>旧保持代码的一致性。
    < iostream>表示你使用的是标注命名空间,也就是在程序开始应该有这么一句话 using namespace std ; 这是遵循c++标准的
    <iostream.h> 则没有遵循c++标准,不建议使用
    <stdio.h> 这个是C标准库,不建议C++使用

    展开全文
  • 用include<iostream.h>报错问题

    千次阅读 2021-01-05 20:41:36
    问题补充: ...2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。 3、在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入.

    在这里插入图片描述

    问题补充:
    已经将#include <iostream.h>改为 #include using namespace std; //必须分两行

    明白了以下几点,问题就搞清楚了:
    1、要区分标准C的库和标准C++的库。iostream是C++的库,stdio.h是标准C的库。
    2、新的C++标准摒弃了.h形式的头文件,所以在vs2005里面是没有iostream.h的头文件的。
    3、在早期的vs版本,比如VC6.0,用的还是老版本的C++标准库,例如iostream.h,并且当时标准库也没有引入名字空间。因此直接#include <iostream.h>是可以的。但到了vs2005,使用了新的C++标准库,只能用#include 。
    4、名字空间里可以包含很多东西,比如函数名、标识符、数据类型等等。新的C++标准把标准库中的名字都放入了std名字空间,因此在#include 之后,还必须使用标准库的名字空间std,才能使用标准库里的类和函数,也就是必须 using namespace std;
    5、对于C的标准库,例如,stdio.h,没有名字空间的概念,因此直接包含后即可使用。
    6、新的C++标准库为了统一以前的C标准库,将原来c的标准库也放入了std名字空间,并把原来的C标准库去掉了.h后缀,前面加上字母“c”,例如stdio.h就变成了cstdio,使用时为#include ,其内容和#include <stdio.h>相同,但是要额外使用名字空间std,也就是using namespace std;
    7、因此,对于新的C++标准库,没有了.h形式的头文件,例如iostream,在包含了头文件以后,必须使用std名字空间才能使用库中的内容。对于C标准库,有两种使用方法,一种是用老的.h形式,例如stdio.h直接包含就可以了;另一种就是用C++的统一形式,例如cstdio,和C++标准库一样,包含了以后还要加上using namespace std;才能使用。 建议采用后面统一的形式,比如你要同时使用C和C++的库,可以这样写: #include #include using namespace std;

    展开全文
  • 改成这两行: #include<iostream> using namespace std;
  • 前者是C++的语法文件,包含了一些对象的类型定义等后者是C的语法文件,包含了一些控制台输入输出的定义等 转载于:https://www.cnblogs.com/zhangpengshou/archive/2013/04/08/3006752.html...
  • VC2003之后这两个头文件没有了,但是目前通过vc编译的帧需要这两个头文件,本人用作以太网帧的传输,供大家参考
  • 自己开发了个OJ系统,评测机用...iostream.h>开头的代码。 解决方法是手动创建一个iostream.h,内容为: #include <iostream> using namespace std; 放在Visual Studio安装目录的VC\include文件夹即可。 ...
  • iostream.h>改成了#include <iostream> 再加上了一句 using namespace std; (VC6还是用#include "iostream.h",#include <iostream>的写法适合后期的VS版本,因为遵循C语言标准)
  • C++:iostream.h: No such file or directory

    千次阅读 2020-10-29 10:48:26
    iostream.h> DEV C++中: VC6.0中却是对的: 在DEV中,我将预处理部分改为 #include “iostream” using namespace std; 编译通过了。 经过搜索以下的解释较为合理: *iostream.h-非标准库: iostream.h头文件...
  • dev c++ 提示:没有iostream.h文件

    千次阅读 2020-07-18 16:11:26
    iostream> using namespace std; int main(int argc, char* argv[]) { cout << "Hello world!" << endl; return 0; } #include <iostream> int main(int argc, char* argv[]) { std::...
  • c++ iostream iostream .h 的区别 内容有点少 希望对大家有帮助
  • #include是指包含后面所跟的内容,iostream是input output stream的缩写,指的是输入输出流。namespace是命名空间。 输入输出流包括: (1)cin>>“输入的内容”>...iostream.h>或#includ...
  • C++关于iostream.hiostream的区别

    千次阅读 2018-10-07 12:26:04
    iostream.h&gt;非标准输入输出流 #include &lt;iostream&gt;标准输入输出流 C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。 当代码中用&lt;iostream.h&gt;时,输出可...
  • 【C++】关于iostreamiostream.h的区别

    万次阅读 多人点赞 2018-05-12 18:00:15
    iostream.h&gt;非标准输入输出流 #include &lt;iostream&gt;标准输入输出流 C++中为了避免名字定义冲突,特别引入了“名字空间的定义”,即namespace。 当代码中用&lt;iostream.h&gt;时,输出...
  • C++中include iostream和include iostream.h

    千次阅读 2018-03-27 09:45:24
    iostream.h&gt;有什么区别? #include&lt;iostream&gt;是C++头文件库; #include&lt;iostream.h&gt;是C头文件库。 C++有一部分继承与C,所以C++中保留了iostream.h这种写法。 使用#include&...
  • iostream.hiostream区别

    2017-03-19 21:15:06
    iostream.hiostream区别:存不存在std名字空间 iostream.h为非标准的输入输出流,这个.h的头文件是C语言格式的,由于当时还没有名字空间这个说法,所以也就不存在std这个名字空间标识符。所以用iostream.h 就用...
  • visual studio2017编写C++无法打开源文件<iostream.h>的问题 删掉.h
  • 改成了#include 再加上了一句 using namespace std;
  • [Error] iostream.h: No such file or directory的解决办法

    万次阅读 多人点赞 2019-08-26 17:05:28
    iostream.h> int main() { print('hello, world\n') return 0; } 编译通不过,直接出错 [Error] iostream.h: No such file or directory 这是C语言转C++的两条经典错误 C++中是没有iostream.h这个东西...
  • iostream.h为非标准的输入输出流,这个.h的头文件是C语言格式的,由于当时还没有名字空间这个说法,所以也就不存在std这个名字空间标识符。自然用iostream.h也就用不着std或者using namespace std了; iostream为...
  • 0、序言 ...其实两者主要的区别就是iostream是C++标准的输入输出流头文件,而iostream.h是非标准的头文件。...转载自:http://www.cnblogs.com/LubinLew/p/cpp-iostream-and-iostream_h.html
  • “无法打开包括文件:“iostream.h

    千次阅读 2019-04-15 09:34:32
    添加头文件时 #include "iostream.h" 报错: “无法打开包括文件:“iostream.h”: No such file or directory” 应该改为:#include "iostream" using namespace std; ...
  • VS2013无法打开包括文件:“iostream.h”问题 ** 刚学C++,用的是VS2013,按书上操作编译时,iostream.h报错,查其原因如下 这个头文件是VC6.0带的文件,在VS2010里面没有这个头文件,自然就不能直接include。 解决...
  • C++中iostreamiostream.h有什么区别?

    千次阅读 2017-09-03 16:04:39
    #include <iostream.h>是非标准输入输出流, #include <iostream>是标准输入输出流 C++中为了避免名字的冲突,特别引入了“名字空间的定义”,即namespace 当代码中用<iostream.h>时,输出可直接引用cout; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 694,752
精华内容 277,900
关键字:

iostream.h