c++ - C++中的ifstream

标签 c++ ifstream

我需要一些代码方面的帮助。

我需要把这个信息从另一个文件带到我的c++代码中,最后一个是这样的:

人类:3137161264 46

这是我为它写的,它正确地使用了“人类”这个词,但是它使用了随机数,而不是我刚写的文件上写的那些:

struct TSpecie {
string id;
int sizeGen;
int numCs; };

__

TSpecie readFile(string file){
TSpecie a;
ifstream in(file);
if (in){
    getline(in,a.id,':');
    in >> a.sizeGen;
    in >> a.numCs;
}
else
    cout << "File not found";
return a; }

希望你能解决,谢谢你的帮助

最佳答案

3137161264 导致整数溢出导致未定义的行为

所以 unsigned int sizeGen 对于这种情况就足够了,但也要考虑 long long (unsigned) int sizeGen

编辑 1: 正如 @nwp 在对您的问题的评论中所指出的,如果发生任何错误,您还可以检查您的流:

//read something and then 

if (!in) { 
    // error occured during last reading 
}

关于c++ - C++中的ifstream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021977/

相关文章:

c++ - 通过对象访问类的静态成员

c++ - 什么是 g++-3/gcc-3?

c++ - 错误重载 >> 运算符从文件读取到类中

c++ - 通过文本文件将字符串和 Int 发送到函数

c++ - 以堆栈状态为条件的 Visual Studio 断点

c++ - 调用左值引用构造函数而不是右值引用构造函数

c++ - StringCbCat 和 StringCchCat API 之间有什么区别

c++ - 不同目录上的 ifstream

c++ - 使用 C++ 读取一行数字

c++ - 从文本文件中读取数据并分离出每行中包含的数据