0
此程序不會創建兩個以上的空文件。c文件處理程序無法創建超過2個文件
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int create(char filename[])
{
char filext[10+1]=".";
printf("\nEnter File Extension :");
scanf("%9s",filext+1);
FILE* fp;
strcat(filename, filext);
fp = fopen(filename,"w");
if(!fp)
{
return 0;
}
fclose(fp);
return 1;
}
int main(int argc , char* argv[])
{
int f;
int i;
char* j;
char buffer[33];
char filename[100];
if (argc == 3)
{
for(i = 0; i < atoi(argv[2]) ; i++)
{
j = itoa(i,buffer,10);
strcpy(filename,strcat(argv[1],j));
f = create(filename);
if(f==0)
{
printf("error in creating files . check uac!!!");
}
else{
printf("\nfile Created ...\n");
}
}
}
else{
printf("syntax Error");
}
return 0;
}
當我嘗試執行該文件時,我得到以下輸出。
F:\selfcreatedtools\filegen>gcc gen.c
F:\selfcreatedtools\filegen>a wander 4
Enter File Extension :php
file Created ...
Enter File Extension :mag
file Created ...
F:\selfcreatedtools\filegen>
正如我在命令行中通過argv[2]
= 4。根據程序循環必須迭代4次。並提供4個文件作爲輸出。但我的程序生成2個文件,循環停止後重復。
提前感謝您的解決方案。我是一個初學者。
'scanf(「%9s」,filext + 1);'?爲什麼'+ 1'? –
你無法安全地執行strcat(argv [1],j)。改爲分配您自己的緩衝區。 – jarmod
@David第一個字符是週期標記。 'char filext [10 + 1] =「。」;' –