我需要爲文件重載運算符[]
,所以它會返回位於文件中的字符(簡單)。 例如Buff[4]
將返回第四位的字符: ch = Buff[4]
。C++爲文件重載運算符[]
我發現很難爲相反的情況編寫代碼,它會改變字符(我知道如何使用文件)。
例如:Buff[3] = ch
會將文件中位置3的Buff更改爲ch
。
感謝您的幫助!
我需要爲文件重載運算符[]
,所以它會返回位於文件中的字符(簡單)。 例如Buff[4]
將返回第四位的字符: ch = Buff[4]
。C++爲文件重載運算符[]
我發現很難爲相反的情況編寫代碼,它會改變字符(我知道如何使用文件)。
例如:Buff[3] = ch
會將文件中位置3的Buff更改爲ch
。
感謝您的幫助!
返回參考字符:
char& operator[](size_t index)
我其實是有點難倒一個優雅的解決方案,同時寫兩個,但你可以返回保持其指數跟蹤類在緩衝區和char值中,並寫入兩個值的變化。
class BuffSpot
{
Buff* buff;
size_t index;
char val;
BuffSpot(Buff* b, size_t i, char c) : buff(b), index(i), val(c) {}
public:
char& operator= (const char& right)
{
val = right;
buff->writeToFile(index, val);
buff->writeToBuff(index, val);
}
}
這不會解決「寫入文件」的問題... – 2015-01-31 19:27:01
地圖@MatsPetersson我想我假設他有異步寫入緩衝區,所以這改變了緩衝區中的字符,然後緩衝區被寫入文件。 – IllusiveBrian 2015-01-31 19:29:25
對於第二種情況,你可能需要返回代理對象....或者只是內存中的文件... – 2015-01-31 19:26:36