c语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题
[求助]關于文件指針在函數(shù)中傳遞的問題
我寫的一個程序中文件指針在各函數(shù)間傳遞。請各位整理一下思路。
/*===============================================================*/
/* 。。。(開頭部分省略) */
/* 部分函數(shù)省略 */
/* 打開號碼文件,號碼文件必須與該程序放在同一文件夾。*/
void OpenFile(char * argv , FILE ** fin , FILE ** fout )
{
char fname[20];
strcpy(fname,"testout.out");
*fin=(FILE *)malloc(sizeof(FILE));
*fout=(FILE *)malloc(sizeof(FILE));
if(((*fin)=(FILE *)fopen("r+",argv))==NULL)
{
printf("%s","\n Open Input File Failed !\n");
exit(0);
}
else
{
if(((*fout)=(FILE *)fopen("w+",fname))==NULL)
{ printf("%s","\n Open Output File Failed !\n");
exit(0);
}
}
return;
}
/*----------------------------------------------------------------------------------------------*/
/* 打開號碼文件,號碼文件必須與該程序放在同一文件夾。結果文件以接收的字符串為文件名,后綴名為.out */
void OpenFile2(char * argv1 , FILE ** fin ,char * argv2 , FILE ** fout )
{
*fin=(FILE *)malloc(sizeof(FILE));
*fout=(FILE *)malloc(sizeof(FILE));
if(((*fin)=(FILE *)fopen("r+",argv1))==NULL)
{
printf("%s","\n Open Input File Failed !\n");
exit(0);
}
else
{
if(((*fout)=(FILE *)fopen("w+",argv2))==NULL)
{ printf("%s","\n Open Output File Failed !\n");
exit(0);
}
}
return;
}
/*--------------------------------------------------------------------------*/
/* 主函數(shù) */
int main(int argc,char * argv[])
{
FILE * fin, * fout;
char * str_old,* str_new;
fin=NULL;
fout=NULL;
str_old=(char *)calloc(sizeof(char),CODE_LEN); /* CODE_LEN為自定義的常量 */
str_new=(char *)calloc(sizeof(char),CODE_LEN);
/* 打開文件 */
switch(argc)
{
case 2 : {OpenFile(argv[1], &fin , &fout); break; }
case 3 : {OpenFile2(argv[1], &fin, argv[2], &fout);break;}
case 1 : {printf("%s","\n Input File is Missing !\n");
PrintTip(); /* 顯示提示函數(shù),省略*/
exit(0);
}
default : {printf("%s","\n You Input too many arguments !\n");
PrintTip();
exit(0);
}
}
/* 讀入數(shù)據(jù)并處理,寫出 */
while(!feof(fin))
{
ReadAString(&fin,str_old); /* 從*fin 中讀入一個字符串傳回str_old變量中 */
strcpy(str_new,str_old);
str_new=AddCode(str_new,ConvertChar(CalcMod(ConvertValue(str_new)))); /* 全是自定義的函數(shù),最后返回一個字串 */
WriteFile(&fout,str_old,str_new); /* 將新舊字串都寫入*fout文件中,使用自定義函數(shù) */
}
/* 關閉文件 */
CloseFile(&fin,&fout);
free(str_old);
free(str_new);
return (0);
}
/*=======================================================================*/
希望大家?guī)兔Ψ治鲆幌耭in、fout及其地址值在相關函數(shù)中傳遞的情況。
我在編譯時總是打開輸入文件錯誤,應該是地址傳遞時出的錯,可是在邏輯上我找不出哪錯了。希望大家?guī)臀铱纯础?/p>
總結
以上是生活随笔為你收集整理的c语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 极客时间-算法训练营 3.2
- 下一篇: 网页版扫雷 -- React练习