选项卡分隔example.txt
文件:
1 MODEL1
2 MODEL2
3 MODEL3
我的主要人物:
int main()
{
int number;
char model[6];
list myList;
ifstream infile;
infile.open("example.txt");
//reading first line from file
infile >> (int)number;
infile >> model;
myList.Insert({ number, model}, 1); // error here on model
return 0;
}
myList类的伪:
struct data{
int number;
char model[6];
};
struct Node{
data data;
...
};
Node = myNode[100]
void Insert(data x, int position)
{
myNode[position].data = x;
}
我从example.txt
文件中读取第二行字符时遇到问题。如何将MODEL1,MODEL2,MODEL3读入myList?
答案 0 :(得分:1)
{number, model}
正在尝试将成员变量model
初始化为本地model
的副本,但原始数组无法进行复制初始化。
您必须使用std::string
:
int main()
{
int number;
std::string model;
list myList;
ifstream infile;
infile.open("example.txt");
infile >> number;
infile >> model;
myList.Insert({number, model}, 1);
}
和
struct data
{
int number;
std::string model;
};
这也将修复@ user2079303和@JoachimPileborg发现的缓冲区溢出错误。
您可以保留原始数组,并手动strncpy
将本地model
数组添加到成员model
。但是,在C ++中不建议这样做。