包含与执行结果不一样,纳闷!谁能告诉我原因?

VcVcVcDelphi 2003-12-10 03:01:27
第一个程序:
#include "stdafx.h"
#include <iostream> //注意这里没有.h 与第二个程序不同
#include <fstream>

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.

char *sFilename = "C:\\Temp\\test1.bin";
std::fstream f;
f.open(sFilename,std::ios::in|std::ios::out|std::ios::binary);
f.seekp(0,std::ios::end);
f.write("Hello,world",12);
f.close();

return 0;
}

第二个程序:
// tst_fstream_h_01.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include <iostream.h>//注意.h 与第一个程序不同
#include <fstream.h> //注意.h

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.

char *sFilename = "C:\\Temp\\test2.bin";
fstream f;
f.open(sFilename,ios::in|ios::out|ios::binary);
f.seekp(0,ios::end);
f.write("Hello,world",12);
f.close();

return 0;
}



...全文
84 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
无我无人 2004-02-02
  • 打赏
  • 举报
回复
show my respect to zeroxy() !
VcVcVcDelphi 2004-02-02
  • 打赏
  • 举报
回复
回答zeroxy():
用Visual7.1(.NET)仍然得到不同结果,程序1能创建新文件C:\Temp\test1.bin,而程序2不能创建新文件C:\Temp\test2.bin。
VcVcVcDelphi 2004-02-02
  • 打赏
  • 举报
回复
问wangyangchang(矛盾)兄,在你的屏幕上显示Hello,world吗?
马丁当 2004-01-31
  • 打赏
  • 举报
回复
带.h的是98年C++标准库出台之前的头文件,那时没有正式出台标准,
所以是厂商(MS)的实现。
不带的是标准库的头文件,它们差距不是很大。
不过vc6.0对ISO C++的支持率是%86.3,所以如果你使用标准库编程可能会有些问题,建议使用VC7.1(.NET),它的支持率达到了98.3%。比GCC还要高,可以说是现在最好的C++开发环境了。
wangyangcheng 2004-01-31
  • 打赏
  • 举报
回复
我是用VC6.0
wangyangcheng 2004-01-31
  • 打赏
  • 举报
回复
第一個輸出﹕
Hello,world

第二個輸出﹕
Hello,world
VcVcVcDelphi 2004-01-30
  • 打赏
  • 举报
回复
拜托大家编译执行一下,看看结果有什么不同。
结果是不同的!
我很纳闷,今后写程序时到底应该用哪种方式?
guanjinke 2004-01-29
  • 打赏
  • 举报
回复
如果在include后边有<>并且不加.h说明这个头文件属于C++的标准名字空间,编译器首先会在标准库的目录下搜索这个文件。
roscoe 2003-12-10
  • 打赏
  • 举报
回复
<fstream>是STL的
<fstream.h>是MS的,原来MS这孙子不提供STL,那这个<fstream.h>骗咱们.
hamham 2003-12-10
  • 打赏
  • 举报
回复
呵呵 好孩子 问得好 其实我也想知道为啥
tyzyx 2003-12-10
  • 打赏
  • 举报
回复
一个是C++的一个是C的
wangyangcheng 2003-12-10
  • 打赏
  • 举报
回复
#include <iostream>
#include <fstream>
是標准庫的。
yifengling0 2003-12-10
  • 打赏
  • 举报
回复
用using namespace std;

也是同样。。

yifengling0 2003-12-10
  • 打赏
  • 举报
回复
我试验了,我这里的不同是,一个可以在文件不存在的情况下新建一个,

带。h的则不能!~

如果文件原来就存在,内容没有区别!
hujun4u 2003-12-10
  • 打赏
  • 举报
回复


#include <iostream>
#include <fstream>

他们好象是stl标准库
你看看stl相关的资料说不定有发现

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧