[問題] 讀檔程式寫完後除錯無誤,但是一打入路徑就不見了

看板C_and_CPP (C/C++)作者 (fatdog)時間16年前 (2010/03/14 22:14), 編輯推噓5(5028)
留言33則, 2人參與, 最新討論串1/1
如題目,小人我寫了一個讀檔程式,除錯後沒問題,一開始的執行也是,但是畫面顯示的文字不完全,跟我程式所打的不太一樣,而且一打入路徑就視窗就消失,請各位高手們幫忙解惑一下並作修改,謝謝。以下是我的程式碼: #include<stdio.h> #include<stdlib.h> #include<io.h> #define LEN 100 int main (void) { FILE*fptr; char fpath[LEN]; int fno,fsize; char ch; printf("請輸入要開啟檔案的完整路徑及檔名:"); gets(fpath); fptr=fopen(fpath,"r"); if(fptr==NULL) { printf("\n開檔失敗,%s 可能不存在\n",fpath); exit(0); } fno=fileno(fptr); fsize=filelength(fno); printf("\n%s 開檔成功,檔案大小 %d Bytes\n",fpath,fsize); printf("%s 資料檔內容如下\n",fpath); while((ch=fgetc(fptr))!=EOF) { printf("%c",ch); } fclose(fptr); printf("\n\n"); return 0; } p.s我把用記事本寫的檔案存在d槽,這應該沒關係吧?因為程式沒有註明一定要存在c槽,所以我就存在d槽,因為筆電好像不給我存,我覺得也很莫名其妙,他說我沒有權限,好像是因為我的設定是一般使用者    檔名我設ex1.txt -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.22.221

03/14 22:38, , 1F
PS區的問題; 你的作業系統是Vista或Win7吧?? 這兩個OS在
03/14 22:38, 1F

03/14 22:39, , 2F
你對磁碟根目錄做存取時會有警告詢問, 避開應該就行了:)
03/14 22:39, 2F

03/14 22:41, , 3F
另外, 把你遇到的不完全例子寫一下吧?? 打完就消失是因
03/14 22:41, 3F

03/14 22:41, , 4F
為你寫的是console程式, 在中間那個exit(0)與最後的
03/14 22:41, 4F

03/14 22:41, , 5F
return 0之前加一行 system("PAUSE"); 不然就是開命令提
03/14 22:41, 5F

03/14 22:42, , 6F
示字元模式執行你的程式.
03/14 22:42, 6F

03/14 22:59, , 7F
謝謝,可以開了,我都忘了成功後文字才會完全顯示,那再
03/14 22:59, 7F

03/14 23:00, , 8F
請教,其他文字檔像是word的話,也可以用原程式去做嗎?
03/14 23:00, 8F

03/14 23:13, , 9F
理論上你要開檔都可以, 但是非純文字檔你這樣直接印出來
03/14 23:13, 9F

03/14 23:13, , 10F
只會是一堆亂碼; 但是開檔讀檔案大小等資訊都是可以的:)
03/14 23:13, 10F

03/14 23:16, , 11F
PS. 這無關副檔名, 而是檔案實際內容是純文字, 還是有固
03/14 23:16, 11F

03/14 23:16, , 12F
定格式的通稱二進位檔案. 比如你的程式去印.c, .h這些程
03/14 23:16, 12F

03/14 23:17, , 13F
式碼檔案也能正常印出; 但印.doc, .jpg就會印鬼畫符了XD
03/14 23:17, 13F

03/14 23:18, , 14F
(如果它是真的WORD產生的.doc檔, 與正確圖檔格式的.jpg)
03/14 23:18, 14F

03/14 23:22, , 15F
那如果我想要直接呼叫txt而不是顯示在執行視窗上,那我
03/14 23:22, 15F

03/14 23:26, , 16F
要怎麼改呢?
03/14 23:26, 16F

03/14 23:29, , 17F
呼叫.txt?? 我推測你是想做像檔案總管點兩下用記事本開
03/14 23:29, 17F

03/14 23:30, , 18F
啟那樣吧?? 在Windows下, start 檔案名 就會launch系統
03/14 23:30, 18F

03/14 23:30, , 19F
預設的處理程式開啟該檔案了:)
03/14 23:30, 19F

03/14 23:34, , 20F
我不太了解您的意思耶,我是想說,當我輸入路徑後,.txt
03/14 23:34, 20F

03/14 23:35, , 21F
會直接跳出,而不是像我上面程式執行出來,內容顯示,而
03/14 23:35, 21F

03/14 23:36, , 22F
是,.txt直接出來
03/14 23:36, 22F

03/14 23:37, , 23F
另外,如果我換成想讀取.doc或是.jpgOR.bmp那又該怎麼去
03/14 23:37, 23F

03/14 23:39, , 24F
作修改?我的基礎不是很好,有很多東西不懂,請多包含
03/14 23:39, 24F

03/14 23:44, , 25F
我不太懂你的.txt直接跳出來是什麼意思; 是所以才問是像
03/14 23:44, 25F

03/14 23:45, , 26F
檔案總管或我的電腦裡, 滑鼠點兩下開啟該檔案這樣嗎??
03/14 23:45, 26F

03/14 23:46, , 27F
你開啟命令提示字元模式, 切到你那個ext1.txt的位置, 然
03/14 23:46, 27F

03/14 23:46, , 28F
後打 start ex1.txt <ENTER> , 就會看到Windows自動用記
03/14 23:46, 28F

03/14 23:47, , 29F
事本開啟它; 如果是圖檔.jpg, 就會用看圖軟體; 如果是網
03/14 23:47, 29F

03/14 23:47, , 30F
頁檔.htm, 就會用瀏覽器; 如果這就是你要的效果, 那就是
03/14 23:47, 30F

03/14 23:47, , 31F
我這段與上段推的用 start 檔名 就行了; 如果不是的話,
03/14 23:47, 31F

03/14 23:48, , 32F
那不好意思小弟我不太懂您要的結果這樣....Orz
03/14 23:48, 32F

03/15 00:00, , 33F
不不,感謝您的指導,我會再努力些去學習,以便跟您討教
03/15 00:00, 33F
文章代碼(AID): #1BdEzZ9j (C_and_CPP)
文章代碼(AID): #1BdEzZ9j (C_and_CPP)