私は初心者の C++ 学生です。ファイルを配列構造に読み込むのに問題があります。これはクラスの割り当てなので、コードを実行する必要はありません。何が間違っているのか知りたいだけです。私が読んでいるテキストファイルは次のようにフォーマットされています:
Giant Armadillo#443#M
Hawaiian Monk Seal#711#M
Iberian Lynx#134#M
Javan Rhinoceros#134#M etc...
を使用getline()
すると、区切り記号を含む文字列を正しく読み取ることができますが、または'#'
では機能しません。区切り文字をチェックしながらorを読むにはどうすればよいですか? ありがとう、これが明確に書かれていないか、適切にフォーマットされていない場合は申し訳ありません. 私はSOが初めてです。int
char
int
char
#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;
}