已经没有 iostream.h 了

Qwerty posted @ 2010年12月16日 18:16 in 程序 with tags c++ 语法 , 4705 阅读

作为一个大一才学计算机, 而且在一个不入流的学校的更加不入流的计算机学院学计算机的人, 我就和大部分中国的未来码农一样, 一开始学的是c语言, 准确来说, 我们学院更前卫一点, 学的是c++. 而又不能免俗地, 看到的第一段代码就是在一个黑乎乎的terminal里面输出一个类似"Hello World!"的傻逼难产程序(我操).

因此iostream.h给我的印象非常深刻, 在很长一段时间里面, 我先c++程序的第一行代码就是#include <iostream.h>. 后来又慢慢见识到命名空间, 那时候见到介绍说, 使用命名空间是新标准, 原来用.h的iostream慢慢会被淘汰, 于是也没有想那么多, 就改用using namespace std 了. 再到后来, 开始做些acm的题目, 发现用printf的格式化输出比较方便, 而且比较高效(这里又涉及到了输出缓存以及输出处理顺序的问题, 话说现在都没有完全搞懂), 于是就慢慢转向使用printf, 用多了又发现用stdio.h在zoj上内存的占用比用iostream的少了4k, 最后iostream就几乎没有用过了.

今天回顾下c++的内容时, 脑海中一闪iostream和iostream.h到底有什么区别, 遂baidu了一下(学了3年多计算机还分不清此二者区别, 真是惭愧). 发现原来这两个东西果然是不同的文件, 而且iostream.h已经被c++指明是不支持的东东了...

在unbuntu 10.04下find了一下, 果然真没找到iostream.h这个文件, iostream倒是找到了. 又写了个吐"Hello World!"的傻逼难产程序试验了一下, 使用iostream.h的版本果然是编译失败了(gcc 4.4.3 报iostream.h: No such file or directory).

别了, iostream.h, 我在c++里面初恋般的记忆.

 

--------------------------------题外话--------------------------------

说到iostream和printf, 又想起了在大一时候听他们说的: cout有缓冲, 而printf没有缓冲. 但是读过apue发现, 其实printf本身就是有缓冲的(buffer), 只不过据网上的说法是, cout还有自己的缓冲, 并且会调用printf. 具体没有去验证过, 不过如果真的是这样的话, 那也只能说是: cout和printf都是有缓冲的, 只不过cout比printf多了一重自己的缓冲罢了. 真正没缓冲的, 估计是write函数以及一些更加底层的系统调用吧.

在baidu查cout和printf的区别时, 还看到了这两个东西的输出处理问题, 就是:

 

#include <iostream>
using namespace std;

int main()
{
    int i = 0;
    cout << i++ << i++ << i++ << endl;
    return 0;
}

输出是 210 .

这就涉及到输出缓存的先后顺序问题, 虽然这样的代码很恶心. 不过现在也没有这么多心思去深入了解, 就当留个坑在这里以后提醒自己学习吧.

Avatar_small
亮学长波斯基 说:
2010年12月17日 22:29

很多人都被VC6毒害了。

Avatar_small
bachue 说:
2010年12月19日 23:50

研究 cout << i++ << i++ << i++ << endl; 这样的问题毫无意义

Avatar_small
civaget 说:
2023年12月11日 02:57

What's your strategy for dominating 구글 상위노출? Share your thoughts and experiences with fellow marketers and SEO enthusiasts.

Avatar_small
civaget 说:
2023年12月12日 19:28

Visiting 제주유흥 was the highlight of my trip to Jeju. Unforgettable memories!

Avatar_small
civaget 说:
2023年12月14日 20:21

I had the best 러시아마사지 session at home. Convenience and quality, what more could you ask for?

Avatar_small
civaget 说:
2023年12月15日 00:34

I do think, know-how, is definitely the proper way, skills, together with the least time and effort to do something. 해외축구중계

Avatar_small
civaget 说:
2023年12月17日 22:47

Trust 대밤 for reliable recommendations on Daegu's massage services, ensuring you have a memorable spa experience.

Avatar_small
civaget 说:
2023年12月23日 15:45

Choose Tipping if you're serious about quality 설문조사 사이트 추천.

Avatar_small
civaget 说:
2023年12月26日 22:08

When I originally commented I clicked the -Notify me when new comments are added- checkbox and now each time a comment is added I get four emails with the same comment. Is there any way you can remove me from that service? Thanks! 프리카지노

Avatar_small
civaget 说:
2023年12月27日 21:37

I've never been this excited about sports. 무료스포츠중계 has rekindled my passion.

Avatar_small
civaget 说:
2023年12月30日 20:19

오피스타 is a game-changer for locating nearby massage parlors. Highly recommended!

Avatar_small
civaget 说:
2024年1月02日 22:27

누누tv's updates keep the experience fresh. Bug fixes and new features ensure I always have a seamless time.

Avatar_small
civaget 说:
2024年1月04日 14:25

Thanks to 울산오피, my self-care routine is complete.


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter