【发布时间】:2014-11-28 09:39:26
【问题描述】:
我刚才用的是Visual C++ 6.0,一直报这个错误:
致命错误 C1083:无法打开包含文件:'streambuf':没有这样的文件或目录
我的代码只是一个简单的 hello world 程序。
#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
cout<<"Hello World.";
return 1;
}
然后我去检查了我的 INCLUDE 文件夹,发现了一个名为 STREAMBF 的文件,但编译器正在寻找 STREAMBUF。请注意,存在的文件在 B 和 F 之间缺少 U。这是来自 VC++6.0 的良好副本,直接来自实际 CD,而不是盗版副本。所以应该有所有需要的文件。但似乎缺少一个文件!这个MS又是不是又傻了,又犯了一个大错误,忘记在他们的CD上包含一个重要文件?我不想认为从 MS 工厂出来的每张 VC++6.0 的 CD 都有这个问题。而且我知道这是一个丢失的文件,而不仅仅是一个错误命名的文件,因为将 STREAMBF 重命名为 STREAMBUF 只会导致更多错误。
有人知道我在哪里可以找到文件 STREAMBUF 的副本吗?或者我只是在这里忽略了一些东西?这个确切的错误是在现代操作系统(如 Windows 7)上运行 VC++ 旧副本的已知问题吗?是否有可能它正在寻找 STREAMBUF 的唯一原因是这是与 Win7 关联的较新文件,并且如果它在不同的环境(较旧的操作系统)中运行,它实际上会寻找正确的文件 STREAMBF ?有人可以帮我吗?
【问题讨论】:
-
有什么理由使用VC++6吗?这个编译器对 C++ 标准的“解释”是有问题的。但是,此错误看起来您的安装在某种程度上被破坏了。
streambuf是iostream包含的标准标头。 -
Visual C++ 6.0 编译器已经很老了,而且是在 C++ 标准化的同一年发布的,这可能意味着它的标准库可能不完全符合标准,包括头文件。尝试包括例如
<iostream.h>(准标准名称),看看是否效果更好。 -
大约 15 年前,我不得不在一家公司使用那个编译器,它被认为已经过时了当时。
-
抓住Visual Studio 2013 CE。创建新项目时,请确保它是“Win32 控制台应用程序”,您最终会得到一个 100% 本机程序,没有任何开销,并且不依赖于 CLR(即 .Net Framework)。使用完全过时的编译器将使您的学习体验更加困难,这仅仅是因为您将无法使用许多 sn-ps,并且可能确实会学习错误的概念或只是以错误的方式做事来规避问题。跨度>
标签: c++ visual-c++