从C++中的文本加载并行数组时遇到问题
Having trouble loading a parallel array from text in C++
抱歉,如果这个问题有重复,我只看到有人用 C 语言问这个问题。我正在尝试使用来自外部数据文件的数据加载并行数组,但是当文件打开并开始加载时,我的输出中得到的只是一个空白控制台。
有问题的代码是...
include <iostream>
#include <fstream>
using namespace std;
...
Void InventoryData::loadArrays()
{
ifstream partIn;
partIn.open("inventoryPricing.dat");
if (partIn.is_open())
{
//Prime Read
partIn >> partNum[invCount]
>> price[invCount];
while(!partIn.eof())
{
invCount++;
partIn >> partNum[invCount]
>> price[invCount];
} //END While
partIn.close();
} //END IF*/
else
{
invCount = -1;
cout<<"File failed to open."<<endl;
}
}
当我注释掉 if 语句时,一切都很好,我得到"文件无法打开"语句没有问题,但如果它尝试打开它只是一个空白屏幕?不知道从哪里开始寻找,一双更聪明的眼睛能引导我走上正确的道路吗?
编辑:在遵循一些建议后,我在每个循环下方添加了一条cout线。它现在返回每个文件,但也返回一个附加文件。最重要的是,有了这个新添加的内容,该文件现在继续进入其他代码行,而以前没有?
它现在返回每个文件,但也返回一个附加文件。
代码的测试eof()
不正确。 您应该测试输入操作是否成功,几乎从不eof()
,除非您已经遇到输入失败。 正确的代码是:
if (ifstream partIn("inventoryPricing.dat"))
{
invCount = 0;
while (partIn >> partNum[invCount] >> price[invCount])
++invCount;
if (partIn.fail())
{
// could set invCount to -1 to avoid partial processing?
std::cerr << "File parsing failed after " << invCount << " entriesn";
}
}
else
{
invCount = -1;
std::cerr << "File failed to open.n";
}
最重要的是,有了这个新添加的内容,该文件现在继续进入其他代码行,而以前没有?
我什至猜不出你这是什么意思......
相关文章:
- 创建结构的数组时遇到分段错误
- 我已经阅读了很多关于 2d 数组的信息,但我在作业中使用它时遇到了麻烦
- 打印问题.我在数组中打印值时遇到一些问题
- C++ 填充数组时遇到问题
- 遇到此问题时遇到困难:允许用户输入数组的值并使用 for,而循环也输出输入的最大数字
- 存储另一个函数返回的布尔数组时遇到问题
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组
- 我在 2D 数组的动态内存分配中遇到了一些奇怪的代码C++? 请解释一下这是什么?
- 尝试通过多个函数移动数组,但遇到了我不知道如何修复的错误
- 对数组进行排序时遇到问题。为什么我的数组无法正确排序?
- 如果 strlen 在 char 数组之间遇到空格,它会怎么做
- 分割故障 - 遇到问题,创建新的数组实例
- 在C++中将动态数组的大小加倍时遇到问题
- 在C++的数组中查找最低值时遇到问题
- 访问对象数组中的对象时遇到问题
- 我在将 cv::Mat 保存到 1D 数组时遇到问题
- 我在使用 cin.getline() 从用户那里获取 3 个字符串并使用指针数组来存储它们时遇到问题
- 我在C++从函数中的用户获取输入、添加到数组和打印该数组时遇到问题
- 在打印出动态分配的数组中的前两个数字时遇到问题,其他数字工作正常
- 在二维结构数组C++遇到问题