我是一个菜鸟 C++ 学生。我无法将文件读入数组结构。这是一项课堂作业,所以我不需要任何人为我编写代码,我只想知道我做错了什么。我正在阅读的文本文件格式如下:
Giant Armadillo#443#M
Hawaiian Monk Seal#711#M
Iberian Lynx#134#M
Javan Rhinoceros#134#M etc...
usinggetline()
可以正确读取带有'#'
分隔符的字符串,但不适用于int
或char
. 如何在检查分隔符时读取int
或?char
谢谢,对不起,如果这不是写清楚,或格式不正确。我对SO是全新的。
#include <iostream>
#include<string>
#include <fstream>
#include <cstdlib>
using namespace std;
//Create a new structure
struct Endangered
{
string name;
int population;
char species;
};
int main () {
Endangered animals[200];
//initialize animals
for (int i=0; i<50; i++)
{
animals[i].name=" ";
animals[i].population=0;
animals[i].species=' ';
}
ifstream myFile;
myFile.open("animals.txt");
int i=0;
if (myFile.is_open())
{
while (myFile.eof())
{
//read the string until delimiter #
getline(myFile, animals[i].name, '#');
//read the int until delimiter #
getline(myFile, animals[i].population, '#');
//read the char until the delimiter
getline(myFile, animals[i].species, '/n');
i++;
}
return 0;
}