Ifstream in c++
Ifstream in c++
我需要一些代码方面的帮助。
我需要将此信息从另一个文件带到我的 c++ 代码中,最后一个文件就像这样:
Human: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
}
始终测试从流读取后输入是否成功:
if (std::getline(in, a.id, ':') >> a.sizeGen >> a.NumCs) {
// ...
}
很可能输入刚刚失败。例如,第一个数字可能无法成功读取。另请注意,std::getline()
是一个未格式化的输入函数,即它不会跳过前导空格。例如,最后一个数字读取后的换行符仍在流中(至少,由于您对std::getline()
的使用在冒号上结束,它只会创建一个奇数 ID(。
相关文章:
- netcat command in c++
- Difference in displaying cv2 Mat
- C++ MFC Libraries in Travis CI
- 如何在OpenSSL中从configuration.h.in获取configuration.h
- 创建具有 new in 函数和"this is nullptr"异常的对象
- IN, OUT, INOUT Parameters
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 有人安装"IITB Simplecpp in mac"吗?
- 从 C 样式字符串中删除子字符串 "in place" 在C++代码中
- 如何修复"error: ‘_1’ was not declared in this scope"?
- Softmax Implementation in C++
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- IF-nesting in c++
- Gurobi GRBModel and GRBmodel in C++
- Tensorflow Hub in C++
- Centos7 g++ "to_string is not in a member of std"
- InitializeCriticalSectionEx Not Located In KERNEL32.Dll
- 将 lambda 表达式传递给 std::function in C++
- @CPPFLAGS@在 Makefile.in 中意味着什么?
- std::async from std::async in windows xp