![]()  | 
		
			
  | 	
	
	
		
		|||||||
| 論壇說明 | 
| 
				歡迎您來到『史萊姆論壇』  ^___^ 您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的! 請點擊這裡:『註冊成為我們的一份子!』  | 
		
     
![]()  | 
    
    
| 
         | 
    主題工具 | 顯示模式 | 
| 
			
			 | 
		#1 | 
| 
			
			 註冊會員 
			
			
			
			
			
			
			 | 
	
	
	
		
		
			
			 書上這一部份小弟又沒用了   我看不懂他的意思   
		
		
		
	    對不起請容我在發問fstream FileInput(FileNameIn, ios::in) if (!FileInput) { cout << "檔案" << FileNameIn << "開啟失敗! << endl; exit(1); } 可以請問一下為什麼判斷是否成功的條件式會是 !FileInput ! 不是相反地意思嗎?? (就是除了它以外) 書上的說明我也看不懂 什麼成功ture會傳回1 不明白他的語意 奇摩知識也找不到 請賜教 ![]()  | 
| 
		 | 
	
	
	
		
	
	 
		送花文章: 0,
		
			
		 
	
 
	
		
	
				 
		
		
		
		
		
		
			
		
		
		
		
		
			
					
						
					
			
		
		
		
		
		
			
				
			
		
		
		
	 | 
| 
			
			 | 
		#2 (permalink) | 
| 
			
			 管理版主 
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 這一行 fstream FileInput(FileNameIn, ios::in) 
		
		
		
		
			一下子做了兩件事 1. 宣告一個 fstream型態的 物件變數,其名稱是 FileInput 2. 開啟 FileNameIn檔案 利用 FileInput來判讀是否為 0 (檔案開啟失敗 的話 FileInput會等於 0) if (!FileInput) 翻譯過來就是 如果 FileInput等於零 則失敗 此帖於 2007-12-18 01:50 PM 被 mini 編輯. 原因: 訂正  | 
| 
		 | 
	
	
	
		
	
	 
		送花文章: 2058,
		
			
		 
	
 
	
		
	
				 
		
		
		
		
		
		
			
		
		
		
		
		
		
		
		
		
			
				
						
				
			
		
		
		
	 | 
| 
			
			 | 
		#5 (permalink) | 
| 
			
			 註冊會員 
			
			
			
			
			
			
			 | 
	
	
	
		
		
			
			 MINI大哥  我看書上是說 ture為1 flast 為0  還是書上寫錯阿?? 
		
		
		
	因為LINUX也是0為ture 這是小弟早上思考出來的理解方式 不知道這樣算不算對 就是當開啟檔案時有開啟動作所以資料流會存為1 或是想成預設情況下就是1 但是最後開啟失敗資料流要傳回非0的訊息給系統 就利用!(想成資料流預設為1) 剛好府合條件非1的值 所以執行 if 條件式 最後exit() function 要結束此開啟檔案的動作 書上是寫exit(1) 就是資料流代表1所以看成結束資料流目前的動作(開啟檔案) 可以想成這樣嗎 因為這是我想了一個早上感覺我可以懂又滿合理的說法 ![]()  | 
| 
		 | 
	
	
	
		
	
	 
		送花文章: 0,
		
			
		 
	
 
	
		
	
				 
		
		
		
		
		
		
			
		
		
		
		
		
		
		
		
		
			
				
						
				
			
		
		
		
	 | 
| 
			
			 | 
		#6 (permalink) | |
| 
			
			 管理版主 
			![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]()  | 
	
	
	
		
		
			
			 引用: 
	
 之前搞錯了 (前面的回覆都改了) 總之 FileInput 執行開檔動作後 會得到一個返回值 用這個返回值是否為零 就知道是否開啟成功就對了 (為零 就是失敗) 一般程式語言的布林設計是 不為零 就是 True 為零 就是 False 所以 !0 會變成 True  | 
|
| 
		 | 
	
	
	
		
	
	 
		送花文章: 2058,
		
			
		 
	
 
	
		
	
				 
		
		
		
		
		
		
			
		
		
		
		
		
		
		
		
		
			
				
						
				
			
		
		
		
	 | 
| 
			
			 | 
		#7 (permalink) | 
| 
			
			 註冊會員 
			
			
			
				
			
			
			
			
			 | 
	
	
	
		
		
			
			 我來進行所有統整解釋吧 
		
		
		
	Q1:為什麼判斷是否成功的條件式會是 !FileInput?? A1:因為FileInput是你函入文件檔時的輸入指令(請看以下例子) 語法: 
	int main(){  //從主函式開始
  int n;
  ifstream fin("in.txt");
  ofstream fout("out.txt");
  fin >>n;
  fout <<n+1;
  return 0;
}
1.藍色部分C/C++裡面是執行函入和輸出的固定程式碼 2.綠色部分則是依照你給定的變數作為指令在運用,好比說cout好了,cout 的定義為"輸出",則在上面各綠色部分的"fout"是個人設"fout"這個變數去充當輸出的指令,也就是說只要我把cout改成fout,則該輸出將會輸出於我要的文件"out.txt"裡,fin也是如此,把cin改成fin則會從我選定的文件輸入,假如你把ifstream fin("in.txt");這段改為ifstream f("in.txt");,則表示你設"f"這個變數作為檔案輸入的指令 3.紅色部分為你要函入或輸出的文件擋,一定要附上附檔名,若存放位置不在debug這個資料夾裡,則要註明從哪輸入(當你開一個文件檔時,上頭不是有欄文件檔的存放位置,把那欄複製貼在紅色部分前面即可) Q2:為什麼會是用指標名稱來判斷是否為0或1?? A2:因為電腦的世界中只有0或1在跑(有電流經過或無電流經過),至於0和1的運用 語法: 
	int a; cin >>a; if((a%=2)) cout a*2; return 0; 以上,了解嘛??  | 
| 
		 | 
	
	
	
		
	
	 
		送花文章: 15,
		
			
		 
	
 
	
		
	
				 
		
		
		
		
		
		
			
		
		
		
		
		
		
		
		
		
			
				
						
				
			
		
		
		
	 | 
     
![]()  | 
    
    
        
  | 
    
         | 
			 
			相似的主題
		 | 
	||||
| 主題 | 主題作者 | 討論區 | 回覆 | 最後發表 | 
| 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 |