本文介绍了ifstream的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! ifstream ifs; ifs.open(&whatever.bin",ios :: in | ios :: binary); 如何设置上面的标志,以便如果whatever.bin文件丢失,而不是 创建一个名为whatever.bin的新文件,但是提供了一种检测 错误的方法吗? ifs.read((char *)p,4); 每个都是read()以上调用只读取字节数? 是否可以直接读取整数?比如ifs.read((int *)p,1); ifs.read((char *)p,16); 如何从p中获得指向16个字节的4个整数? 谢谢! 解决方案 通常你可以简单地重新解释_cast指针来对待你的''p'' 作为一组int。它不是便携式的,当然,使用你自己的风险。 Victor Dart写道: int a [4]; read_natively(ifs,a); //可能无法在破旧的编译器上工作 - 问候, 巴斯特。 通常你可以简单地重新解释指针,把你的''p''作为一个整数数组来对待。它不是便携式的,当然,使用你自己的风险。 Victor 这会起作用吗? int arr [4]; arr = reinterpret_cast< int *>(p); 谢谢! ifstream ifs;ifs.open("whatever.bin", ios::in | ios::binary);How to set flag above so that if "whatever.bin" file missing, rather thancreate a new file named "whatever.bin", but providing a way to detect theerror?ifs.read((char *)p, 4);Does each "read()" call above read only in bytes? Is it possible todirectly read in ints? Like ifs.read((int *)p, 1);ifs.read((char *)p, 16);How to obtain 4 ints out of p pointing to 16 bytes?Thanks! 解决方案Often you can simply reinterpret_cast the pointer to treat your ''p''as an array of ints. It''s not portable, of course, use at your ownrisk.Victorint a [4];read_natively (ifs, a); // might not work on broken old compilers--Regards,Buster. Often you can simply reinterpret_cast the pointer to treat your ''p'' as an array of ints. It''s not portable, of course, use at your own risk. VictorIs this going to work?int arr[4];arr = reinterpret_cast<int *>(p);Thanks! 这篇关于ifstream的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云! 08-30 23:28