- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
警告:
warning C4244: 'initializing' : conversion from 'std::streamoff' to 'unsigned int', possible loss of data
原因:
unsigned int FileSize = File.tellg( ); // WARNING
std::cout << "Size = " << FileSize << std::endl;
可能的解决方案?这样做可以吗:
// No more warnings but, is it safe?
unsigned int FileSize = (unsigned int)File.tellg( ); // OK?
std::cout << "Size = " << FileSize << std::endl;
这个怎么样?
// No more warnings but, is it safe?
unsigned int FileSize = static_cast< unsigned int >( File.tellg( ) );
最佳答案
streamoff
是由您的 C++ 标准库实现定义的有符号整数类型,并且足够大以适应最大可能的文件大小。例如,在我的 x86_64 stdlibc++ 中,它是一个 int64_t
。
为了避免潜在的数据丢失,请使用更大的类型或...简单地让您的变量为 streamoff
类型。
关于C++ 解析 istream::tellg 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15172315/
ifstream::tellg() 为某个文件返回 -13。 基本上,我编写了一个分析一些源代码的实用程序;我按字母顺序打开所有文件,我从“Apple.cpp”开始,它工作得很好..但是当它到达“Co
为什么tellg()在写操作后移动,我想应该是tellp()? std::fstream fs("c:\\log.txt", std::ios::in | std::ios::out | std::i
我有一个从文件中读取行的函数。但在读取之前,它会返回要读取下一行的地址。 我的职能是: void print() { int j=0; string a,b,c
我正在用 c++98 编写一个小解析器(是的,不能使用 11)。我正在使用 std::stringstream,我通过引用传递给不同的函数,让我们称它们为子解析器。为了知道要调用哪个子解析器,我需要知
我以二进制模式打开了一个文件,进行以下操作得到了 x 的负值。我打开的文件大小约为 2.5 GB。 infile.seekg(0, ios::end); __int64 x = infile.tell
我有一个正在读取的大型二进制文件,我想将当前位置与一个 unsigned long long int 进行比较。但是,根据 C++ 文档,我不清楚是否: tellg() 的返回类型是什么 如何比较 t
我做了一个示例项目来将文件读入缓冲区。当我使用 tellg() 函数时,它给我的值比read 函数实际上是从文件中读取的。我认为有一个错误。 这是我的代码: 编辑: void read_file (c
所以,我很好奇,因为我一直在使用这种相当有用的方法来获取文件的大小,但有些事情困扰着我。将流锁定到文件系统上的文件和 fileStream.seekg(0, std::ios::beg); int b
我下载了一个 C++ 实用程序,但在读取输入文件时由于错误而死掉了。不幸的是,它输出的只是“偏移量错误:文件中的 69570744324”;通过查看它的源代码,我发现它实际上是在那里打印出 .tell
我遇到了一个奇怪的问题。假设我正在读取这样的文件: std::ifstream in("file.txt", std::ios::binary); std::string text; in.seekg
我一直在 Visual Studio 2015 中使用 iostream 进行一些基本的文件操作,并注意到这种奇怪的行为。 #include #include #include void mai
假设我想获得两个 tellp() 输出之间的差异(整数)。 如果写入一个大文件,tellp() 的输出可能会很大,所以将它存储在一个 long long 中是不安全的。有没有安全的方法来执行这样的操作
我知道这个标题听起来很疯狂,但我现在正在亲 body 验这一点,我想不出任何失败的原因。 我正在使用 getline() 读取文件 在阅读结束时,我调用了 tellg()。但是,此调用总是失败(返回值
读取.cpp #include #include using namespace std; int main(void) { int id; char name[50];
我正在尝试使用 fstream 从文件中读取。我正在尝试的文件阅读有这样的内容: 1200 1000 980 890 760 我的代码: #include #include using names
我正在读取 data.txt: ////////////////////////////////////////////////// data.txt: ///////////////////////
我有一个 std::fstream,我使用它导入 std::fstream myFile { "C:/path/to/file.txt" }; 当我想读取第一个字节时,我使用 char c; cout
与 fstream file("test.txt",ios_base::in | ios_base::out | ios_base::binary); tellp 和 tellg 对于 file 是否
我在 std::fstream 类的 tellg() 函数中遇到问题。通常它应该返回当前字符在输入流中的位置。但是,它对我来说很奇怪。下面是一些简短的示例代码: #include #include
我正在编写一个 C++ 控制台应用程序。在用 size(int) rowSize 和 columnSize 创建了一个 Matrix 之后,我想将文本文件中的字母写入矩阵,但是 while 循环永远不
我是一名优秀的程序员,十分优秀!