日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题

發(fā)布時間:2023/12/10 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

[求助]關于文件指針在函數(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语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。