从文本列表中获取字符串数组C ++

左心室

我的文本文件就像

123456123456
Jason
uk
012456788
1000
456789456789
david
uk
012456788
1000

我试图从文本文件中获取数据并将其保存到数组中,但是当我想将文本文件中的数据存储到数组中时,它会不停地循环。我该怎么办 ?在循环中退出的问题还是我从文本文件中获取数据的方法?

代码:

#include <iostream>
#include <fstream>

using namespace std;

typedef struct {
    char acc_no[12];
    char name[30];
    char address[50];
    char phone_no[12];
    double balance;

} ACCOUNT;

//function prototype
void menu();
void read_data(ACCOUNT record[]);

int main() {
    ACCOUNT record[31]; //Define array 'record'  which have maximum size of 30
    read_data(record);  
}
//--------------------------------------------------------------------

void read_data(ACCOUNT record[]) {
    ifstream openfile("list.txt");              //open text file 

    if (!openfile) {
        cout << "Error opening input file\n";
        return 0;
    } else {
        int loop = -1;                  //size of array 
        cout << "--------------Data From File--------------"<<endl;
        while (!openfile.eof())  {
        if (openfile.peek() == '\n') 
            openfile.ignore(256, '\n');
        openfile.getline(record[++loop].acc_no, 12);
        openfile.getline(record[loop].name, 30);
        openfile.getline(record[loop].address, 50);
        openfile.getline(record[loop].phone_no, 12);
        openfile >> record[loop].balance;
        }
        openfile.close();               //close text file

        for (int i = 0; i <= loop + 1; i++) {
            cout << "Account "  << endl;
            cout << "Account No.  : " << record[i].acc_no << endl;
            cout << "Name         : " << record[i].name << endl;
            cout << "Address      : " << record[i].address << endl;
            cout << "Phone Number : " << record[i].phone_no << endl;
            cout << "Balance      : " << record[i].balance << endl;
        }
    }
}
jrd1

更新:

OP在他的数据文件中未正确引用正确的格式。该答案仅在最后一次迭代之前有效

不要使用.eof()-这更适用于您要打开文件并按字符读取文件的情况。

更好的方法是使用插入运算符>>,如下所示:

#define ARR_SIZE 31

ACCOUNT temp;
ACCOUNT record[ARR_SIZE];
int i=0;

while(i < ARR_SIZE) {
  openfile >> temp.acc_no >> temp.name >> temp.address >> temp.phone_no >> temp.balance;
  record[i] = temp;
  i++;
}

当然,std::string除了使用std::vectors代替数组之外,更好的是使用来保存输入文件中的值

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在微调器中获取字符串地址,而不是在SQLite中获取字符串形式的数组列表?

来自分类Dev

R如何获取字符串中的字符列表

来自分类Dev

在javascript中从选定的文本中获取字符串?

来自分类Dev

如何获取字符串并存储到数组中然后与列表进行比较

来自分类Dev

从 Bash 中的变量列表中获取字符串

来自分类Dev

如何从文本框中获取字符串

来自分类Dev

在javascript中获取字符串之间的文本模式

来自分类Dev

从文本 PHP 中获取字符串

来自分类Dev

SQLite:仅从文本列中获取字符串

来自分类Dev

在所说字符串中的文本之间获取字符串中的文本

来自分类Dev

如何在C#中获取字符串中特定文本的行号

来自分类Dev

PySpark-从列表中获取字符串位置

来自分类Dev

在Pandas DataFrame中获取字符串而不是列表

来自分类Dev

从以逗号分隔的列表中获取字符串

来自分类Dev

如何从列表框中获取字符串

来自分类Dev

Haskell从列表理解中获取字符串

来自分类Dev

如何从java列表中获取字符串值

来自分类Dev

Scala从char数组中获取字符串列表

来自分类Dev

如何从Powershell管道中获取字符串数组?

来自分类Dev

在PSQL中获取字符串数组的大小

来自分类Dev

从变量数组java中获取字符串的长度

来自分类Dev

如何从流中获取字符串数组值?

来自分类Dev

TypeScript:从类型析取中获取字符串数组

来自分类Dev

以更短的方式从数组中获取字符串

来自分类Dev

在字符串列表中搜索字符串以获取字符串

来自分类Dev

您如何从c中的数组中获取字符串?

来自分类Dev

在c中的二维数组中获取字符串输入

来自分类Dev

C ++从字符串中获取字符我

来自分类Dev

C ++从字符串中获取字符我

Related 相关文章

热门标签

归档