Tab鍵分隔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?
除了編譯錯誤,您還有一個緩衝區溢出錯誤。從流中讀取字符串時,會附加空終止符字符。您的型號名稱包含6個字符。因此,當流入7個字符時,你會溢出'char model [6]'。 – user2079303
與你的問題無關,但你有一個更嚴重的錯誤,即*緩衝區溢出*。你聲明一個由6個字符組成的數組,但是你會在數組中寫入* 7個*字符,寫出越界並導致*未定義的行爲*。你忘記了C風格的字符串需要額外的字符來終止字符串。改用['std :: string'](http://en.cppreference.com/w/cpp/string/basic_string)。順便說一句,使用'std :: string'將解決你所問的問題。 –
在'main'中,爲什麼不聲明'struct data data_item;'並且讀'infile >> data_item.number;'和'infile >> data_item',而不是分別聲明'int number'和'char model [6]'。模型「,然後調用'myList.Insert(data_item,1);'? – lurker