看板 C_and_CPP 關於我們 聯絡資訊
#include<stdio.h> #include<stdlib.h> #include <string.h> #include <ctype.h> #define Size_Of_Tmp 512 int ReadFile(char *filename,FILE *fptr){ char tmp[Size_Of_Tmp]; fptr=fopen(filename,"r"); if(fptr==NULL){ printf("%s open error\n",filename); printf("按任意鍵結束程式\n"); fgets(tmp,Size_Of_Tmp,stdin); exit(0); } return 0; } int main(){ FILE *ptr=NULL; char tmp[Size_Of_Tmp]; ReadFile("orz",ptr); memset(tmp,'\0',sizeof(tmp)); while(fgets(tmp,sizeof(tmp),ptr)){ printf("%s\n",tmp); memset(tmp,'\0',sizeof(tmp)); } return 0; } 我想請問一下為何這樣會有錯誤?? 我並非沒遵守local與global的規範 問題似乎出在ptr上 進入ReadFile時 ptr有正確被assign 但出了function ptr就被歸零了!! 原因是?? -- CyberPanel 5000CP 換 NT.500 http://myurl.com.tw/05bd EmailCash 5000e 換 NT.500 http://myurl.com.tw/rgdq -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.137.204.228 ※ 編輯: nikeasyanzi 來自: 114.137.204.228 (10/26 10:12)
Bencrie:FILE** fptr 10/26 10:13
nikeasyanzi:喔喔 對 這似乎之前版上也有討論過!! 10/26 10:14
nikeasyanzi:謝謝^^ 10/26 10:14
Bencrie:因為你會修改到傳進來的FILE*,所以你需要FILE** 10/26 10:14