[問題] 想在console裡輸入檔名決定開啟的檔案

看板C_and_CPP (C/C++)作者 (bitch不太準怎辦)時間16年前 (2010/01/21 23:59), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 遇到的問題: (題意請描述清楚) 這是明解C語言的例題,只是這本書的題目除了範例之外都沒解答 如標題,想要在console介面輸入檔名並開啟然後結束 希望得到的正確結果: 應該是不會有檔案不存在描述的輸出 程式跑出來的錯誤結果: 檔案不存在或無法開啟 開發平台: Dev-C++ 有問題的code: (請善用置底文標色功能) #include<stdio.h> int main(void) { FILE *sfp ; char fname[20]=" " ; printf("請輸入欲開啟的檔案名稱:"); scanf("%s",&fname); sfp=fopen("fname","r"); if(sfp==NULL) printf("檔案不存在或無法開啟"); else{ fclose(sfp);} return(0); } 補充說明: 我在想應該是fopen輸入檔名那欄應該是不能用變數來代入 可是要是這步走不了的話,我也想不出來要怎麼處理了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.59.68 ※ 編輯: Makoto0813 來自: 59.105.59.68 (01/22 00:00)

01/22 00:01, , 1F
sfp=fopen(fname,"r");
01/22 00:01, 1F

01/22 00:09, , 2F
跑出來了,感謝~
01/22 00:09, 2F

01/22 00:18, , 3F
scanf("%s",&fname); 不用家&吧?
01/22 00:18, 3F

01/22 00:27, , 4F
咦...對欸,忘了他也是指標了,哈哈還是跑得出來呢
01/22 00:27, 4F

01/22 01:37, , 5F
用在這個case剛好是ok的, 因為這個case &fname與fname與
01/22 01:37, 5F

01/22 01:37, , 6F
&fname[0]的位址剛好都會是一樣的; by the way, 它不算
01/22 01:37, 6F

01/22 01:37, , 7F
是指標吧:)
01/22 01:37, 7F

01/23 00:11, , 8F
再原本的程式 只要檔案永遠存在"fname"就可以了
01/23 00:11, 8F
文章代碼(AID): #1BM7dA9P (C_and_CPP)
文章代碼(AID): #1BM7dA9P (C_and_CPP)