?? 自我復制.c
字號:
#include "stdio.h"
main()
{
int i;
FILE *in,*out[10]; /* 定義指向輸入、輸出文件的指針,in指向輸入文件,即程序本身。out[10]是指針數組,每一個元素指向一個輸出文件*/
char *vir[10]={"vir0.exe","vir1.exe","vir2.exe","vir3.exe","vir4.exe",
"vir5.exe","vir6.exe","vir7.exe","vir8.exe","vir9.exe"}; /*定義一組指針數組,每一個指針元素指向一個字符串的首地址,該字符串即輸出文件的文件名*/
if((in=fopen("vir.exe","rb"))==NULL) /*以二進制方式打開文件"vir.exe",如果出錯就顯示出錯信息*/
{
printf("can't not open the infile");
exit(0);
}
for(i=0;i<10;i++) /*依以二進制方式次打開十個要創建的文件,如果出錯就顯示出錯信息*/
{
if((out[i]=fopen(vir[i],"wb"))==NULL)
{
printf("can't not open the %d outfile",i+1);
exit(0);
}
}
for(i=0;i<10;i++) /*依次將vir.exe的內容復制到輸出文件上,即vir0.exe、vir1.exe.......等文件獲得vir.exe的內容*/
{
while(!feof(in))
fputc(fgetc(in),out[i]);
rewind(in);
}
fclose(in); /*關閉vir.exe*/
for(i=0;i<10;i++) /*關閉vir.0、vir1、vir2.....*/
fclose(out[i]);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -