C++从文件中读取整数并保存到数组中
C++ read integers from file and save into array
我正在制作一个只从文本文件中读取整数的程序。 我想创建一个函数来读取整数并将它们存储在数组中,以便以后可以使用该数组通过气泡排序对它们进行排序。这就是我到目前为止所拥有的,但我得到的输出是一些随机的 - 803234....数:
void read(int A[max], int& numbers) {
ifstream file("ints.txt");
if (file.is_open()) {
file >> numbers;
for (int i = 0; i < numbers; i++) {
cout << "numbers: " << A[i] << endl;
}
file.close();
}
cout << "numbers in array: " << A[numbers] << endl;
}
std::vector<int> read_ints(std::istream& is)
{
std::vector<int> result;
std::copy(std::istream_iterator<int>(is),
std::istream_iterator<int>(),
std::back_inserter(result));
return result;
}
如果你不能使用向量,你就会遇到问题,因为你现在需要检查文件末尾和数组中的空间是否不足......
此函数将检查两者,并返回已放入缓冲区的整数数:
template<size_t N>
size_t read_ints(int (&dest)[N], std::istream& is)
{
size_t i = 0;
while (i < N && is >> dest[i]) {
++i;
}
return i;
}
非模板版本:
#define BUFFER_LEN 100
size_t read_ints(int (&dest)[BUFFER_LEN], std::istream& is)
{
size_t i = 0;
while (i < BUFFER_LEN && is >> dest[i]) {
++i;
}
return i;
}
您任何时候都不会将数字存储在数组中:
void read(int A[max], int& numbers) {
ifstream file("ints.txt");
if (file.is_open()) {
file >> numbers;
for (int i = 0; i < numbers; i++) {
// you're printing A[i] but you haven't stored
// anything there.
cout << "numbers: " << A[i] << endl;
我假设numbers
是文件中的条目数,并且您打算以与读取numbers
相同的方式读取值,但读取 A[i]。
cin >> A[i];
代码的最后一部分还尝试打印到数组的最后一个条目之外:
cout << "numbers in array: " << A[numbers] << endl;
请记住,C++数组都是从 0 开始的,所以 A[numbers]
是 *数字 + 1*th 条目。
相关文章:
- 保存/加载大量短数组到二进制文件
- 如何在数组和向量 c++ 中存储和保存输入
- 2D 数组,某些单元格保存特定数据
- 如何在c++中将字符串中的所有数字保存到多维数组中
- 将值更改为 c++ 的数组并保存文件
- 数组不保存初始化值
- 按顺序遍历 AVL 树,将值保存在数组中
- 将 QImage 保存到字节数组
- 将特征数组行保存在变量中
- 将 JPG 编码数组从 ROS sensor_msgs/压缩图像保存到 roscpp 中的文件
- C++ 如何动态保存大量数组?
- 在 tensorflow c++ api 中,如何从张量中保存图片或数组
- 获取C++中的多个输入文件并将其保存在数组中
- 生成唯一的随机字符并将其保存在数组中
- 如何创建一个动态数组,该数组可以保存从C++中派生的同一基类的所有不同对象
- 如何在C++中保存动态数组中的值
- 如何将外部文件中的数据保存到 2D 数组中?(C++)
- GoogleMock SaveArg 用于保存数组?编译器抛出错误,我还没有看到一个好的解决方案
- 保存数组地址的指针的地址是相同的
- 在armadillo中保存数组(立方体)以便稍后在R中加载的最佳格式