應當是很基本的東西,但老是記不起來…基礎果然沒打好啊
local variables-->stack
initialized global variable-->data memory ( .data segment in gcc )
initlaized static variable --> data memory
uninitialized global variable-->data memory ( .BSS( Block start by Symbol) segment in gcc )
uninitlaized static variable --> data memory
register variable-->register

zxlin 發表在 痞客邦 留言(0) 人氣()

延續上一篇。學妹在 while 迴圈中,想透過輸入的方式取得檔案名稱,利用一個 ifstream 物件重覆的開啟關閉,但是第二次迴圈就會開啟檔案失敗。程式碼如下:
ifstream ifs;
string filename, buffer;
for (;;) {
cin >> filename;
ifs.open(filename.c_str());
if (ifs.fail()) {
// fail
}

while (ifs >> buffer) {
// do something
}
ifs.close();
}


解決方法很解單。因為在 while (ifs >> buffer) 這段結束之後,ifs 物件的 failbit 就被設成 1 了。因此重新開啟時無論如何都會失敗。要重覆使用 ifs 物件,就要在重覆使用之前將狀態旗標清掉就行了。參考下面程式碼:

zxlin 發表在 痞客邦 留言(0) 人氣()

晚上對門實驗室的學妹問了一段 code,跑出了意料外的結果。這段 code 簡化如下:
ifstream infile("test.txt");
string foo;
 do {
ifs >> foo;
cout << foo << endl;
}while (!ifs.eof());

看似簡單的一段 code,其實就圍繞在 operator>> 之上。假設 test.txt 檔案如下:
This is a test string.

zxlin 發表在 痞客邦 留言(0) 人氣()

前陣子不知道看著什麼文章,好像是 moto 學園吧,看到了討論自由軟體的文章。
從 moto 又看到了自由軟體交流網,發現了不少自己沒注意的好東西,
像是 Code::Blocks + MinGW ,PDF Creator 等等好東西。
當試著用了 Code::Blocks 之後,才發現這真的是個好到不能再好的自由軟體了。
它可以搭配好幾種的編譯器,像是 Microsoft Visual C++ Toolkit 2003

zxlin 發表在 痞客邦 留言(4) 人氣()

1
Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。