史萊姆論壇

返回   史萊姆論壇 > 專業主討論區 > 程式語言討論區
忘記密碼?
論壇說明

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


發文 回覆
 
主題工具 顯示模式
舊 2007-12-17, 10:45 PM   #1
a19870504
註冊會員
榮譽勳章

勳章總數
UID - 283728
在線等級: 級別:2 | 在線時長:15小時 | 升級還需:6小時級別:2 | 在線時長:15小時 | 升級還需:6小時
註冊日期: 2007-10-25
文章: 34
精華: 0
現金: 56 金幣
資產: 56 金幣
預設 討論 - 請問資料流開啟檔案判斷是否成功

書上這一部份小弟又沒用了 我看不懂他的意思 對不起請容我在發問

fstream FileInput(FileNameIn, ios::in)
if (!FileInput)
{
cout << "檔案" << FileNameIn
<< "開啟失敗! << endl;
exit(1);
}

可以請問一下為什麼判斷是否成功的條件式會是 !FileInput
! 不是相反地意思嗎?? (就是除了它以外)
書上的說明我也看不懂 什麼成功ture會傳回1 不明白他的語意
奇摩知識也找不到 請賜教
a19870504 目前離線  
送花文章: 0, 收花文章: 6 篇, 收花: 14 次
回覆時引用此帖
舊 2007-12-17, 11:01 PM   #2 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時
註冊日期: 2002-12-07
文章: 13495
精華: 0
現金: 26860 金幣
資產: 3024790 金幣
預設

這一行 fstream FileInput(FileNameIn, ios::in)
一下子做了兩件事
1. 宣告一個 fstream型態的 物件變數,其名稱是 FileInput
2. 開啟 FileNameIn檔案

利用 FileInput來判讀是否為 0 (檔案開啟失敗 的話 FileInput會等於 0)
if (!FileInput) 翻譯過來就是
如果 FileInput等於零 則失敗

此帖於 2007-12-18 01:50 PM 被 mini 編輯. 原因: 訂正
mini 目前離線  
送花文章: 2055, 收花文章: 8070 篇, 收花: 26924 次
回覆時引用此帖
舊 2007-12-18, 07:28 AM   #3 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 283728
在線等級: 級別:2 | 在線時長:15小時 | 升級還需:6小時級別:2 | 在線時長:15小時 | 升級還需:6小時
註冊日期: 2007-10-25
文章: 34
精華: 0
現金: 56 金幣
資產: 56 金幣
預設

那為什麼會是用指標名稱來判斷是否為0或1
是只要開豈不成功此檔案就會傳遞一個非0的訊息給系統
然後我們在利用這個訊息來寫條件式??

然後檔案開豈不成功所以訊息會是1在給EXIT這個函數而結束動作??


那這樣的話可以單寫成 if( !0 ) 嗎?

還有到底成功的訊息是會傳0還是1 課本一下說0一下說1 我好槁不懂
a19870504 目前離線  
送花文章: 0, 收花文章: 6 篇, 收花: 14 次
回覆時引用此帖
舊 2007-12-18, 08:23 AM   #4 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時
註冊日期: 2002-12-07
文章: 13495
精華: 0
現金: 26860 金幣
資產: 3024790 金幣
預設

FileInput 被宣告成一個 fstream(檔案流)物件變數
並不是一個指標不指標的關係

所謂 物件 有點像 class
但 物件 本身就是一個容積 (class 就要用 . 來存取內部成員資料)
舉個例
物件A 可以 if(物件A==1){...}
類別B 就需 if(類別B.err>0){...}

此帖於 2007-12-18 01:50 PM 被 mini 編輯. 原因: 訂正
mini 目前離線  
送花文章: 2055, 收花文章: 8070 篇, 收花: 26924 次
回覆時引用此帖
舊 2007-12-18, 11:49 AM   #5 (permalink)
註冊會員
榮譽勳章

勳章總數
UID - 283728
在線等級: 級別:2 | 在線時長:15小時 | 升級還需:6小時級別:2 | 在線時長:15小時 | 升級還需:6小時
註冊日期: 2007-10-25
文章: 34
精華: 0
現金: 56 金幣
資產: 56 金幣
預設

MINI大哥 我看書上是說 ture為1 flast 為0 還是書上寫錯阿??
因為LINUX也是0為ture

這是小弟早上思考出來的理解方式 不知道這樣算不算對

就是當開啟檔案時有開啟動作所以資料流會存為1 或是想成預設情況下就是1

但是最後開啟失敗資料流要傳回非0的訊息給系統 就利用!(想成資料流預設為1)

剛好府合條件非1的值 所以執行 if 條件式

最後exit() function 要結束此開啟檔案的動作 書上是寫exit(1)

就是資料流代表1所以看成結束資料流目前的動作(開啟檔案)

可以想成這樣嗎 因為這是我想了一個早上感覺我可以懂又滿合理的說法
a19870504 目前離線  
送花文章: 0, 收花文章: 6 篇, 收花: 14 次
回覆時引用此帖
舊 2007-12-18, 01:56 PM   #6 (permalink)
管理版主
 
mini 的頭像
榮譽勳章
UID - 4144
在線等級: 級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時級別:98 | 在線時長:10174小時 | 升級還需:23小時
註冊日期: 2002-12-07
文章: 13495
精華: 0
現金: 26860 金幣
資產: 3024790 金幣
預設

引用:
作者: a19870504 查看文章
MINI大哥 我看書上是說 ture為1 flast 為0 還是書上寫錯阿??
因為LINUX也是0為ture

這是小弟早上思考出來的理解方式 不知道這樣算不算對

就是當開啟檔案時有開啟動作所以資料流會存為1 或是想成預設情況下就是1

但是最後開啟失敗資料流要傳回非0的訊息給系統 就利用!(想成資料流預設為1)

剛好府合條件非1的值 所以執行 if 條件式

最後exit() function 要結束此開啟檔案的動作 書上是寫exit(1)

就是資料流代表1所以看成結束資料流目前的動作(開啟檔案)

可以想成這樣嗎 因為這是我想了一個早上感覺我可以懂又滿合理的說法
真不好意思
之前搞錯了 (前面的回覆都改了)

總之 FileInput 執行開檔動作後
會得到一個返回值
用這個返回值是否為零
就知道是否開啟成功就對了
(為零 就是失敗)

一般程式語言的布林設計是
不為零 就是 True
為零 就是 False

所以 !0 會變成 True
mini 目前離線  
送花文章: 2055, 收花文章: 8070 篇, 收花: 26924 次
回覆時引用此帖
發文 回覆



發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用

相似的主題
主題 主題作者 討論區 回覆 最後發表
SQL - MySQL 資料庫的備份與還原 Admin1 論壇程式討論區 1 2007-11-25 10:16 PM
疑問 - 請問資料夾下的檔案... clout 一般電腦疑難討論區 3 2007-11-22 10:34 PM
求助 - 變更開啟檔案或資料夾的的順序 王小二 一般電腦疑難討論區 3 2007-06-25 11:04 PM


所有時間均為台北時間。現在的時間是 03:40 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1