任何想法为什么以下将失败?
std :: fstream i(L“C:/testlog.txt”,std :: ios :: binary | std :: ios :: in);
int test = 0;
我>>testing;
失败()返回true。 该文件存在并打开。
我检查了i._filebuffer._Myfile._ptr,它是指向该文件的缓冲区的指针,所以我不明白为什么它失败。
有没有办法将DB用户密码传入命令行工具MysqLadmin?
WM_MENUSELECT不在CFrameWndEx窗口中处理
使用/ SAFESEH定制SEH处理程序
你如何获得一个全局variables被实例化为win32下C ++的第一件事情?
如何跟踪使用的DLL(这是所谓的DLL地狱?)
通过检查registry来确定是否安装了IIS
C ++:数据types,使用什么时候?
无法使用C.编译Python包错误2 – 无法打开包含文件:'alloca.h'?
在非MFC应用程序上使用activeX对象
LibGD库不工作:保存图像时崩溃
您正在以二进制模式打开文件。 提取操作符是为了与文本文件一起使用。 只需省略std::ios::binary标志以文本模式打开文件即可。
编辑 :我也测试了它,而且确实似乎工作。 我从CPlusPlus.com得到这个,它说:
在二进制文件中,使用提取和插入运算符(<<和>>)和getline等函数来输入和输出数据效率不高,因为我们不需要格式化任何数据,并且数据可能不使用分离代码文本文件分离元素(如空间,换行符等)。
再加上ios::binary的描述,它简单地描述了“将流视为二进制而不是文本”,现在我完全搞不清楚了。 这个答案正在变成一个自己的问题…
下列:
#include <fstream> #include <iostream> using namespace std int main() { std::fstream i("int.dat",std::ios::binary | std::ios::in); int test = 0; if ( i >> test ) { cout << "ok" << endl; } }
给出包含字符“123”的文件时打印“ok”。 请发布一个类似的简短的测试,说明你的代码失败。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。