c++ - 在 C++ 中从文本文件中读取数值数据

标签 c++ file-io

这是一个需要编写代码从文件中读取数据的程序。该文件如下所示:

1234 200.55
5678 1234.56
9876 2.33

我需要将第一个数字存储为帐号,将第二个数字存储为帐户余额。

#include<iostream>
#include<fstream>
using namespace std;

const int MAX_NUM=100;
int read_accts(int acctnum[], double balance[], int max_accts);

int main()
{
    int acctnum[MAX_NUM];
    double balance[MAX_NUM];
    int max_accts=0;
    int num_accts;

    num_accts = read_accts(acctnum,balance,max_accts);

    return 0;  
}

int read_accts(int acctnum[],double balance[],int max_accts)
{
    ifstream infile;
    infile.open("information");

    while (infile >> acctnum[max_accts] && max_accts < MAX_NUM)
    {
        infile >> balance[max_accts];
        max_accts++;
    }
    for (int i=0; i<=max_accts; i++)
    {
        cout << acctnum[i]<<endl;
        cout << balance[i]<<endl;
    }
    infile.close();  
    return max_accts;
}

这个程序的输出是

0
0

它应该和文本文件一样。它不应该是 0 和 0。

在此先感谢任何帮助。

最佳答案

首先,您在每个数组中打印了太多元素。打印循环应该从 0 运行到 max_accts(不包括),如下所示:

 for (int i=0; i < max_accts; i++)

现在,由于您正在尝试读取名为“information”的文件,因此我已经使用您问题中描述的内容创建了此类文件并运行了您的代码。我得到的输出是:

1234
200.55
5678
1234.56
9876
2.33

这看起来像你想要得到的(而不是零),所以你的代码似乎工作正常。也许您没有打开正确的文件?

将文件名从“information”更正为其他名称,或者确保在当前工作目录中有一个名为“information”的文件。

关于c++ - 在 C++ 中从文本文件中读取数值数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25469379/

相关文章:

c++ - 如何在一个 vs2008 项目中将库与 __stdcall 和 __cdecl 结合起来

c++ - 在尝试连接时取消 curl_easy_perform

c - 尽管多次成功写入,但 Write() 仍导致 EBADF 失败

c# - 如何判断一个对象是文件还是文件夹

c++ - 如何用编程语言表示二进制字段?

c++ - regex_search 和子串匹配

c++ - 在通用模板代码中初始化聚合成员

python - 在 Python 中读取大文件 (52mb) 的行,是迭代行还是使用 readlines 更好?

c++ - 将文件夹内的图像文件名写入文本文件c++

java - java中有没有一种方法可以根据文件名对文件夹中的特定类型的文件进行分组并单独添加它们?