重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在C 语言中没有办法把其他文件里的内容传递给主函数 main( )。因为任何一个 C 语言源程序都是从 main( ) 函数开始执行的。所以只能够在主函数 main( ) 中,将文件里的内容传递给用户自定义的子函数才对。例如如下 C 程序:
创新互联是一家以网络技术公司,为中小企业提供网站维护、网站制作、成都网站建设、网站备案、服务器租用、申请域名、软件开发、重庆小程序开发公司等企业互联网相关业务,是一家有着丰富的互联网运营推广经验的科技公司,有着多年的网站建站经验,致力于帮助中小企业在互联网让打出自已的品牌和口碑,让企业在互联网上打开一个面向全国乃至全球的业务窗口:建站联系电话:028-86922220
#include stdio.h
#define MAX 100
void main( )
{
FILE * fpr ;
char file_buffer[MAX] ;
fpr = fopen("my_textfile", "r" ) ; /* 以读方式打开 my_textfile 文本文件 */
if( fpr == NULL )
{ /* 若文件打开失败,则退出系统 */
printf("Can't open my_textfile for read!\n") ;
exit(1) ;
}
fgets(buffer, MAX, fpr) ; /* 从文件中读入一行数据 */
my_subfunc(buffer) ; /* 调用用户自定义的子函数 */
puts(buffer) ; /* 显示处理后的结果 */
fclose(fpr) ; /* 关闭文件 */
}
my_subfunc(char buffer[ ])
{
int i = 0 ;
for( i = 0 ; buffer[i] != '\0' ; i++)
buffer[i] += 2;
}
C语言实现一个简单的文件复制功能,Linux环境下。
思路步骤:(下代码最重要的逻辑步骤清晰)
第一步:打开源文件(要复制的文件),打开文件的方式以读的方式就可以了。
Linux C打开文件的库函数有:int open(const char *pathname,int flags),int open(const char *pathname,mode_t mode),以及 FILE *fopen(const char *path,const char *mode),FILE *fdopen(int fd,const char *mode),这几个函数,具体的使用方法就查看manual就可以了。
第二步:创建目标文件,所用的函数也是上面那几个。
第三步:读取文件。库函数有:size_t read(int fd,void *buf,size_t count),
size_t fread(void *ptr,size_t size,size_t nmemb,FILE *stream)
第三步:写入目标文件。用的库函数:size_t write(int fd,void *buf,size_t count),
size_t fwrite(void *ptr,size_t size,size_t nmemb,FILE *stream)
第四步:关闭文件。库函数:int fclose(FILE *fp) ,int close(int fd)
思路步骤就是这样子的了。下面是具体的代码实现。
#include
#include
#include
#include
#include
#include
int main(int argc,char *argv[])
{
int fd_source_file,fd_copy_file;//用接受int open()函数返回的值
//FILE *fp_source_file,*fp_copy_file;//如果用FILE *fopen()函数的话
int size_read,size_write;
char buf[1024];
char copy_file_name[50];
//检查参数的输入
if(argc3)
{
printf("usage: ./a.out source_file_path copy_file_path\n");
exit(1);
}
//复制目标文件名
strcpy(copy_file_name,argv[2]);
//打开源文件
if( (fd_source_file=open(argv[1],O_RDONLY,00744))0 )
{
perror("open source file error");
exit(1);
}
//创建目标文件
if( (fd_copy_file=open(argv[1],O_CREAT|O_RDWR)) 0 )
{
perror("create copy file error");
exit(1);
}
do
{
//读取文件内容
if( (size_read=read(fd_source_file,buf,1024)) 0 )
{
perror("read source file error");
exit(1);
}
//写入目标文件
if( (size_write=write(fd_copy_file,buf,sieze_read))0 )
{
perror("wrire file error");
exit(1);
}
}while(size_read==1024)
return 0;
}
#includestdio.h
char *custom_cpy(char *to,char *from);
int main(int argc,char *argv[]){
char *from = "i like c langanger";
char to[30];
char *ptr = custom_cpy(to,from);
printf("%s,%s\n",ptr,to);
return 0;
}
char *custom_cpy(char *to,char *from){
if(to == NULL || from == NULL){
return NULL;
}
char *p = to;
for(;*from!='\0';from++,to++){
*to = *from;
}
*to = '\0';//拷贝完毕之后一定要加一个结束符号
return p;
}
扩展资料:
字符串相关函数应用:
1. 连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn。
例:concat(‘11’,'aa’)='11aa’;
2. 求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:copy(‘abdag’,2,3)=’bda’;
3. 删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’;
4. 插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’;
5. 求字符串长度 length(s) 例:length(‘12abc’)=5;
参考资料:
百度百科-字符串
system 函数是可以运行一个外部控制台程序。
标准的复制文件方法是用API函数 CopyFile/CopyFileEx
这两个函数,详细参数和参数的意思,你查查MSDN上面写的很详细