[問題] 幾個FSTREAM的小問題
很久以前修課的時候
教授丟給我們的期末專案
是文書編輯器
那時候連個物件都不太會宣告
最近把它寫寫看的時候
遇到了幾個FSTREAM的問題
1.
我看C++ PRIMIER上面寫說
在宣告一個FSTREAM物件的時候
OPEN一個檔案
如果那個檔案不存在
就會幫你CREATE
可是我試過了好像不是這麼一回事??
怎麼開不存在的檔案都是失敗的
2.
我試圖用IFSTREAM讀.TXT裡面的字串
我測試了一下
比如說~我的內容是:
hello
world
然後用ifstream的物件呼叫>>複製到傳統C字串裡面
CODE的話是這樣
fstr>>str; 出來是hello
fstr>>str>>str; 出來就變成了world
如果我呼叫getline一次或兩次,效果跟上面一樣
所以其實>>和getline是在做同樣的事情嗎?
我又試了呼叫get
http://www.cplusplus.com/reference/iostream/istream/get/
然後我用的是這個get:
istream& get ( char* s, streamsize n );
他裡面的說明是說
超出size或是遇到'\n'的時候會結束
呼叫一次也是hello
再呼叫一次就變成什麼都沒有了
我看了看原因是因為
本來的hello的第一個,也就是h變成了'\0'
然後函數理所當然也因為遇到'\0'就結束了
這樣的話起始的地方不就每次都從'\0'開始了嗎
要怎麼解決這個問題呢?
有辦法直接控制他從哪裡開始讀嗎?
3.
如果說要COPY檔案所有的內容
到一堆自串矩陣裡面
我要怎麼得知他在哪一行已經結束了?
例如說我為了要COPY文件的字串一開始開了5000個
到底的時候再創五千個繼續存
現在文件只有100行
我要怎麼讓迴圈適可而止呢?
4.
http://www.cplusplus.com/reference/iostream/fstream/open/
這個網頁說
The function effectively calls rdbuf()->open(filename,mode).
但是我一直想不通直接用串流物件呼叫OPEN就好了阿
effectively是??
不好意思文章很冗長
謝謝各位看完
小弟表達能力不佳
傷害各位的眼睛了ˊˋ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.233.148.84
推
08/03 12:40, , 1F
08/03 12:40, 1F
→
08/03 12:42, , 2F
08/03 12:42, 2F
→
08/03 12:43, , 3F
08/03 12:43, 3F
→
08/03 12:44, , 4F
08/03 12:44, 4F
→
08/03 12:44, , 5F
08/03 12:44, 5F
→
08/03 15:39, , 6F
08/03 15:39, 6F
→
08/03 15:40, , 7F
08/03 15:40, 7F
→
08/03 15:53, , 8F
08/03 15:53, 8F
→
08/03 15:54, , 9F
08/03 15:54, 9F
→
08/03 19:46, , 10F
08/03 19:46, 10F
→
08/03 19:48, , 11F
08/03 19:48, 11F
→
08/03 19:48, , 12F
08/03 19:48, 12F
→
08/03 19:49, , 13F
08/03 19:49, 13F
→
08/03 20:32, , 14F
08/03 20:32, 14F
→
08/03 20:33, , 15F
08/03 20:33, 15F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章