gpt4 book ai didi

c++ - 从文件中读取数据到C++中的多个数组

转载 作者:行者123 更新时间:2023-11-30 05:21:46 25 4
gpt4 key购买 nike

我有一个函数应该从一个文件读取数据到三个数组。每行到另一个数组。前两个是字符串类型,第三个是 double 类型。出于某种我似乎无法弄清楚的原因,当读取 double 的行未被注释掉时,只有前三行正确显示。

const int SYMB_LEN = 25;
const int NAME_LEN = 25;
void read_stocks(char[][SYMB_LEN], char[][NAME_LEN], double[]);

int main() {
char symble[10][SYMB_LEN];
char name[10][NAME_LEN];
double price[10];
read_stocks(symble, name, price);
system("pause");
return 0;
}

void read_stocks(char symble[][SYMB_LEN], char name[][NAME_LEN], double price[]) {
ifstream fin;
fin.open("c://cplusplus//stocks.dat");

if (!fin) {
cout << "Data file not found.";
exit(1);
}
price[0] = 0;
unsigned int temp = 0;
while (!fin.eof() && temp < 10) {
fin.getline(symble[temp], SYMB_LEN);
fin.getline(name[temp], NAME_LEN);
fin >> price[temp];
cout << symble[temp] << endl;
cout << name[temp] << endl;
cout << price[temp] << endl;
//cout << temp << endl;
temp++;
}
fin.close();
}

这是我正在阅读的文件中的内容:

AAPL
Apple Computer
27
LU
Lucent Technologies
72
NSCP
Netscape
27.75
MOT
Motorola
49.5
PLAT
Platinum Technologies
24.125
SEEK
Infoseek
32.5
YHOO
Yahoo
126
T
AT&T
63
PSFT
Peoplesoft
42.25
PPOD
Peapod
4.5

最佳答案

读完double后,需要读数字后面的换行

fin.getline(symble[temp], SYMB_LEN);
fin.getline(name[temp], NAME_LEN);
fin >> price[temp];
fin.ignore(numeric_limits<streamsize>::max(), '\n'); //add this

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com