问题标签 [ifstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
59557 浏览

c++ - C ++从文件流中读取无符号字符

我想从二进制文件中读取无符号字节。所以我写了下面的代码。

这导致读取始终为 0 字节,如变量计数所示。

网上似乎有参考资料说我需要设置语言环境才能完成这项工作。我不清楚如何做到这一点。

相同的代码使用数据类型“char”而不是“unsigned char”工作

上面使用 unsigned char 的代码似乎可以在 Windows 上运行,但在 colinux Fedora 2.6.22.18 中运行失败。

我需要做什么才能让它在 linux 上工作?

0 投票
5 回答
84622 浏览

c++ - 我需要手动关闭 ifstream 吗?

close()使用时需要手动调用std::ifstream吗?

例如,在代码中:

我需要file.close()手动调用吗?不应该ifstream使用RAII来关闭文件吗?

0 投票
5 回答
23466 浏览

c++ - ifstream::open 在 Visual Studio 调试模式下不起作用

我一直在讨论关于 SO 的 ifstream 问题,但我仍然无法阅读一个简单的文本文件。我正在使用 Visual Studio 2008。

这是我的代码:

通过检查 .txt 的值,我确认input.txt文件位于正确的“工作目录”中argv[0]。Open 方法是行不通的。

我在调试时也遇到了麻烦-我应该无法设置手表吗infile.good()infile.is_open()我不断得到

编辑:使用 .CPP 文件中的完整代码更新代码列表。

更新:该文件不在当前工作目录中。这是项目文件所在的目录。把它移到那里,它在 VS.NET 中调试时工作。

0 投票
5 回答
210342 浏览

c++ - 在 C++ 中按完整路径打开文件

我希望用户给我文件所在的完整路径,而不仅仅是文件名。如何以这种方式打开文件?

是这样的吗:

这似乎不起作用。

0 投票
3 回答
9154 浏览

c++ - C ++如何读取具有给定偏移量的对象?

现在我有一个包含许多数据的文件。而且我知道我需要的数据从位置 (long)x 开始,并且具有给定的大小 sizeof(y) 我怎样才能获得这些数据?

0 投票
3 回答
9717 浏览

c++ - Windows std::ifstream::open() 问题

我知道有一些关于 std::ifstream::open() 的问题,但答案并没有解决我的问题。它们中的大多数都是特定于 Win32 的,我使用的是 SDL,没有触及任何特定于操作系统的功能(......没有包含在 SDL 中)。

问题是: std::ifstream::open() 似乎不再起作用,因为我已经从 Dev-C++ 切换到 Code::Blocks (我一直在使用相同的 MinGW-GCC 后端),以及从 Windows XP 到 Vista。(它也可以与 OS X / xcode(GCC 后端)完美配合。)

我的项目链接到一个静态库,其中 #includes <string>、<iostream>、<fstream> 和 <cassert>,然后调用静态库中定义的功能,然后调用 std::ifstream::open () (这次是直接)。在此之后,流计算为 false(使用隐式 bool 转换运算符和 good() 方法)。

代码:

stdcout.txt 说:

打开 'D:/My projects/Test/test.cfg'...

当我打开 stdcout.txt 并将带有文件名的路径复制粘贴到开始菜单/运行时,文件会按原样打开(我不完全确定这是多少诊断值;另外,地址是转换为以下格式:file:///D:/My%20projects/test/test.cfg)。

我还尝试用双反斜杠转义序列替换 '/'(同样,斜杠以前也可以正常工作),但结果是一样的。

一个调试版本,但我使用的是从 main() 的 argv[0] 获取的整个绝对路径。

我哪里出错了,我需要做些什么来解决它?

0 投票
1 回答
1217 浏览

c++ - ifstream seekg Beyond end 不会在 VS 2008 Express 中返回 eof?

在 VS 2005 中,我有一些如下所示的代码:

该代码在 VS 2005 中运行良好,但在 VS 2008 Express 中失败。据我所知,VS 2008 在代码搜索到文件末尾后没有返回 eof() 。我错过了什么吗?我通过添加显式检查来修复它以查看查找位置是否超过文件大小,但我想确保我正确理解 ifstream。

0 投票
2 回答
6297 浏览

c++ - MSVC++7.1 中的 ifstream.read() 与 ifstream.readsome()

我只是使用了一些在 Linux 下开发的文件阅读器的旧代码,并尝试在我用 MSVC++7.1 编译的 Windows 项目中使用相同的代码。编译的代码没有任何问题,但是根据 Windows 上的文件阅读器,该文件似乎是空的。

我将问题追踪到 ifstream.readsome() 没有从文件中读取任何内容,而没有在流上设置任何错误标志。下面提供的代码可以在 Linux 和 Windows 上编译,但 Linux 可以按预期工作。

代码打开一个文件并读取文件的前 512 个字节,read()一次使用readsome(). 两个结果都存储在两个向量中,在程序结束时进行比较。预期的结果是两个向量相等。

该程序在 Windows XP 上的输出结果贴在源代码下方。

如果有人有任何想法或猜测此代码中可能出现的问题,我很想听听他们的意见。

demo的完整源代码:

Windows XP 上的输出:

0 投票
2 回答
15541 浏览

c++ - 将字符串放入 ifstream 方法中

我正在学习 C++,当我尝试在ifstream方法中使用String时遇到了一些麻烦,如下所示:

这是完整的代码:

这是Eclipse的错误,方法前的x

但是当我尝试在 Eclipse 中编译时,它会在方法前添加一个x,这表示语法错误,但语法有什么问题?谢谢!

0 投票
5 回答
6057 浏览

c++ - problem opening file c++

Must be a simple answer but I am at a loss, here is the code that is returning an error. I have tried with and without the starting slash.

I won't know the full path, I want it to be relative from the exe, and that is the relative path. I tried escaping the slashes.

My problem is that i get "error opening file" when the file is there. why is it failing?

thank you