c语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题
[求助]关于文件指针在函数中传递的问题
我写的一个程序中文件指针在各函数间传递。请各位整理一下思路。
/*===============================================================*/
/* 。。。(开头部分省略) */
/* 部分函数省略 */
/* 打开号码文件,号码文件必须与该程序放在同一文件夹。*/
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;
}
/*--------------------------------------------------------------------------*/
/* 主函数 */
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(); /* 显示提示函数,省略*/
exit(0);
}
default : {printf("%s","\n You Input too many arguments !\n");
PrintTip();
exit(0);
}
}
/* 读入数据并处理,写出 */
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)))); /* 全是自定义的函数,最后返回一个字串 */
WriteFile(&fout,str_old,str_new); /* 将新旧字串都写入*fout文件中,使用自定义函数 */
}
/* 关闭文件 */
CloseFile(&fin,&fout);
free(str_old);
free(str_new);
return (0);
}
/*=======================================================================*/
希望大家帮忙分析一下fin、fout及其地址值在相关函数中传递的情况。
我在编译时总是打开输入文件错误,应该是地址传递时出的错,可是在逻辑上我找不出哪错了。希望大家帮我看看。
c语言在函数中传递指针,[求助]关于文件指针在函数中传递的问题相关推荐
- C语言fseek()函数(whence)重新定位文件指针位置
C 标准库 - <stdio.h> 描述 C 库函数 int fseek(FILE *stream, long int offset, int whence) 设置流 stream 的文件 ...
- html中清除所有格式,清除文件HTML格式函数ClearHtml
'/* 函数名称:ClearHtml ReplaceHtml '/* 函数语言:VBScript Language '/* 作 用:清除文件HTML格式函数 '/* 传递参数:Content (注:需 ...
- 深入理解Python中的字符编码、文件处理和函数
博客核心内容: 1.Python基础之字符编码的介绍 2.Python中文件处理的介绍 3.Python中函数的介绍 4. File.readlines(sizehint) 函数 一.Python基础 ...
- python中可以使用变量来引用函数-python如何引用其他py文件里的函数
python引用其他py文件里的函数方法 Python中在脚本中引用其他文件函数的方法 在导入文件的时候,Python只搜索当前脚本所在的目录,加载(entry-point)入口脚本运行目录和sys. ...
- python创建文件对象的函数_Python学习笔记之—— File(文件) 对象常用函数
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: 1.file.close() close() 方法用于关闭一个已打开的文件.关闭后的文件不能再进行读写操作, 否则会触 ...
- 如何在vim中交换两个打开文件(在拆分中)的位置?
本文翻译自:How can I swap positions of two open files (in splits) in vim? Assume I've got some arbitrary ...
- java文件指针,Java 测试文件指针,java测试指针,两种方法打开文件并进行内
Java 测试文件指针,java测试指针,两种方法打开文件并进行内 两种方法打开文件并进行内容定位package com.ronsoft.books.nio.channels;import java. ...
- 计算机系统如何禁止删除文件,如何防止恢复电脑中被回收站删除的文件|彻底删除电脑中的文件的方法...
在电脑系统中要删除文件的话,一般是先将文件删除到回收站中,然后再删除回收站中的文件.但是这样并不能彻底删除文件,因为可以通过其他软件恢复被删除的文件.因此,对于一些秘密的重要文件,建议使用本教程中 ...
- c语言getline读取一行命令行,如何从文件的特定行中获取getline()? C ++
这个问题非常不清楚.您如何确定具体 线?如果是第n行,最简单的解决方案就是调用 getlinen次,扔掉除最后一个结果以外的所有结果:呼唤 ignoren-1次可能会快一点,但我怀疑如果 您总是读入相 ...
最新文章
- js创建对象的几种方法
- python基础代码库-python基础知识和练习代码
- 【转】RabbitMQ六种队列模式-3.发布订阅模式
- 基于Hadoop 2.6.0运行数字排序的计算
- saspython知乎_银行业为什么喜欢用 sas 而不是 python?
- 通话话单分析 java,奇兵手机话单分析系统功能简介
- 实时渲染学习(六)延迟渲染(Deferred Rendering)
- C语言关于链表的代码看不懂?一篇文章让你拿捏二级指针并深入理解函数参数列表中传参的多种形式
- 人工智能 倒啤酒问题 python解法
- 【经验】软件测试用例设计之错误推测法
- python既是无序序列又不可重复的是_python 在set里随机选一个元素_Python序列--集合(set)...
- 苹果ios按键精灵deb包旧版本1.3.8安装方法 --- 越狱通用版
- 汉语拼音大全(竖排版)
- Java导出数据到Excel文件
- 2022年上海市安全员C证考试题库及答案
- 1.单例模式_繁星漫天_新浪博客
- 拓嘉辰丰:怎样给拼多多直播预热
- 用代码动态链接图片源
- 广西高中有没有计算机课程,【广西高中课改网】_广西高中课改网
- jquery备忘学习笔记
热门文章
- jQuery ajax 和 普通js ajax 笔记
- 在C#里,如何执行cmd里的常用dos命令 (转)
- linux安装Git依赖的包出错,技术|Linux有问必答:如何在Linux上安装Git
- RabbitMQ消息确认机制
- Android 闹钟,实现demo
- 使用babel7 和 nodemon 进行node项目开发
- csdn markdown 编辑器开启
- 高一学生计算机知识现状分析,关于高中信息技术课教学现状的思考
- java 接口式自定义回调函数
- linux php cgi.sock,nginx中unix:/tmp/php-cgi.sock错误解决解决