克隆c语言
❶ c语言中,把一个变量的内容复制到另一个变量怎么做
非字符串类型使用=赋值。
字符串类型使用STRCPY函数
❷ C语言怎样实现自我复制
#include "Windows.h" //以下函数得包含此头文件int main(){
char szPath[MAX_PATH]; //保存自身文件名的字符串
char toPath[MAX_PATH] = "C:"; //要复制到的路径字符串
int i;
GetMoleFileNameA(NULL,(LPCH)szPath,225); //获取自身路径的函数 for (i = strlen(szPath); i > 0; i--) //获取文件名的处理,就我所知,VC没有获取文件名的函数,要自己处理;BCB就有
{
if (szPath[i] == '\\') //最后一个‘\’后面就是文件名
break;
}
strcat(toPath,&szPath[i]); //把文件名连接到toPath,得到“C:\*.exe”
for (char ch = 'c'; ch <= 'f'; ch++) //复制处理,从c到f
{
toPath[0] = ch; //改盘符
CopyFileA(szPath,toPath,false); //复制函数,从szPath复制到toPath,强行覆盖原有文件
}
return 0;
}
❸ c语言文件复制程序
直接用c语言的
system(....)
调用
DOS
的
或
x
命令就可以,目标文件夹你愿意
键盘输入也可以。
把具体的命令字符串
放在
char
cmd[300];
里。(用strcpy,strcat,sprintf
生成)
system(cmd)
;
就执行乐。
同样:
system("bot.exe")
;
就运行"bot.exe"。
不会DOS
的
或
x
命令,可以查
帮助文件:
DOS窗里
打
/?
DOS窗里
打
x
/?
阅读吧。
❹ 如何实现C语言中复制文件的程序
1 以只读方式打开第一抄个文件
2 以写方式打开第二个文件
3 循环读取字符,并写入第二个文件。直到遇到EOF结束。
4 关闭文件。
代码:
#include<stdio.h>
intmain()
{
FILE*f1,*f2;
intc;
f1=fopen("in.txt","rb");
f2=fopen("out.txt","wb");//将in.txt复制为out.txt;
while((c=fgetc(f1))!=EOF)
fputc(c,f2);
fcloseall();
return0;
}
❺ 程序怎么自我复制(C语言)
用main函数的argv[0]参数获取程序本身路径
然后用system函数执行命令
system(" [path1] [path2]");
path1就是程序本身路径,path2就是你要复制的结果目标文件的路径
不过因为system函数的参数必须是一个字符串,所以使用前要把、路径1、路径2这三个字符串拼接成一个包含完整命令的字符串
———————————————————————————————————————————
比如要把你的程序本身复制到C盘根目录下:
#include <stdio.h>
#include <windows.h>
#include <string.h>
int main(int argc,char *argv[])
{
char *myfilepath = argv[0];
char *mubiaofilepath = "c:\\mubiaowenjian.exe";
char command[1000] = " ";
strcat(command,myfilepath);
strcat(command," ");
strcat(command,mubiaofilepath);
system(command);
return 0;
}
这样就可以了
注意,这种方法,如果程序文件本身路径中包含一些特殊字符,运行时可能会找不到路径
———————————————————————————————————————————
或者用C语言标准库自带的文件操作函数也可以:
#include <stdio.h>
#include <stdlib.h>
#define BUFFER_SIZE 1024
int main(int argc,char *argv[])
{
FILE *f1 = fopen(argv[0],"rb");
FILE *f2 = fopen("mubiaowenjian.exe","wb+");
char buffer[BUFFER_SIZE];
int readnum;
while( !feof(f1) )
{
readnum = fread(buffer,1,BUFFER_SIZE,f1);
fwrite(buffer,1,readnum,f2);
}
fclose(f1);
fclose(f2);
return 0;
}
大致原理是:因为系统中的所有文件都是以二进制格式保存的,所以用fopen函数以二进制形式打开文件,就可以对任何格式的文件进行读写操作
复制就是,把源文件中的所有二进制代码复制到另一个空文件中
程序的代码实现是:在自己想要的路径上创建一个空文件,然后把源文件中的二进制代码全部写入到这个文件中,这样就实现了复制
——————————————————————————————————————————
补充一下,操作系统对运行时文件进行保护,是指,一般情况下,对“写”操作有限制,但并不会影响“读”操作;
比如,同一个exe文件是可以同时打开(读)多个的,但运行时无法对其进行修改、删除(写)等操作
所以fopen函数不用"w"模式打开文件的话是可以进行操作的
❻ C语言---如何复制任意文件
C语言复制文件主要由三种办法,你可以根据自己的知识选用一个
方法1)利内用C语言的二进制读写容函数
自己用fopen打开源文件和目标文件,然后用循环读写实现复制
方法2)利用操作系统的文件复制函数
例如Windows就有如下API函数可以复制文件
BOOL CopyFile(
LPCTSTR lpExistingFileName, // name of an existing file
LPCTSTR lpNewFileName, // name of new file
BOOL bFailIfExists // operation if file exists
);
第一个参数是用来存放当前要处理文件的路径。
第二个参数是用来存放用户指定的新路径。
第三个参数它是用来判断用户指定的新路径是否已经存在要存放的路径,如果为TRUE,则新路径中已经存在该文件了,该函数调用失败,否则就调用成功。
方法3:C语言调用操作系统的命令
首先#include<stdlib.h>
然后 程序中 调用 system(“这里写 的完整命令”);
❼ C语言中如何复制数组的内容
C语言中复制数组的内容源代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 10
void show_array(const int ar[], int n);
int main()
{
int values[SIZE] = {1,2,3,4,5,6,7,8,9,10};
int target[SIZE];
double curious[SIZE / 2] =
{2.0, 2.0e5, 2.0e10, 2.0e20, 5.0e30};
puts("memcpy() used:");
puts("values (original data): ");
show_array(values, SIZE);
memcpy(target, values, SIZE * sizeof(int));
puts("target ( of values):");
show_array(target, SIZE);
puts("
Using memmove() with overlapping ranges:");
memmove(values + 2, values, 5 * sizeof(int));
puts("values -- elements 0-5 copied to 2-7:");
show_array(values, SIZE);
puts("
Using memcpy() to double to int:");
memcpy(target, curious, (SIZE / 2) * sizeof(double));
puts("target -- 5 doubles into 10 int positions:");
show_array(target, SIZE/2);
show_array(target + 5, SIZE/2);
system("pause");
return 0;
}
void show_array(const int ar[], int n)
{
int i;
for (i = 0; i < n; i++)
printf("%d ", ar[i]);
putchar('
');
}
(7)克隆c语言扩展阅读
1、C语言编程中,将常用的操作封装成函数进行调用,可以大大简化程序的编写,而且在代码的维护性及可读性方面也提供了便利。
2、不同地方需要对处理后的数组内容多次进行显示,并且很多情况下并非显示数组里面的全部内容,而仅仅是想观察数组中的部分数据内容,若每次显示时都用printf函数写的话,可以写一个自定义的通用函数,用来根据需要显示数组中的内容。
❽ C语言如何复制数组
int (double *a,double *b,double *c,int n)//a是输入数组
{
int i;
for(i=0;i<n;i++)
{
b[i]=a[i];
*(c+i)=*(a+i);
}
}
直接手敲的,手上没C,供参考。
❾ c语言,求代码,直接能复制到cb强的那种,不然复制很麻烦
#include<stdio.h>
#include<string.h>
intmain()
{
chars[60];
while(~scanf("%[^ ]%*c",s))
{
if(strchr(s,'A')&&strchr(s,'C')&&strchr(s,'M'))
printf("^v^ ");
else
printf("== ");
}
return0;
}