如何編輯結構的單個成員?例如,我想改變entity.name
從富到foobar的。代碼修改單個結構成員
部分:
void editing1(int cnt, int qq)
{
Entity z;
char tempc[255];
int tempi = 0;
cout << "Type in new name: ";
cin >> tempc;
qq--;
Entity* ss = new Entity[cnt];
while (fread(&z, sizeof z, 1, file)) {
ss[tempi] = z;
if (tempi == qq) {
(*ss[tempi].name = *tempc);
};
tempi++;
};
purge();
for (int ii = 0; ii < cnt; ii++) {
fwrite(&ss[ii], sizeof(Entity), 1, file);
};
fclose(file);
system("cls");
};
但我得到這個:
而且它還有......破壞整個文件。原文:
也有人解釋爲什麼它會損壞整個文件,而不是它被使用的部分?
C和C++不是相同的語言。由於你的代碼看起來像C一樣,我已經刪除了C++標記。 – JBentley 2013-05-07 22:04:24
@JBentley - 然而,它也包含'cout'和'cin',它們顯然不是直的'C' - 也就是說,恢復'C++'標籤沒什麼意義。 – 2013-05-07 22:08:58