马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我想问问这个里面main函数的参数的问题,因为其他调用函数的参数都是要传入某个变量,但是这个函数是通过cmd来使用的,并不是直接运行控制台程序然后输入,然后在cmd里面输入多少个文件名,参数argc就能获取到几。我想知道两个形参是如果获取值的。谢谢
#include <stdio.h>
#include <stdlib.h>
int main( int argc, char* argv[] ) //argc是记录输入文件的数量,argv[]是存放文件指针
{
FILE *in, *out;
int ch; // char
if( argc != 3 ) //输入的文件数不是3个就执行下面语句
{
fprintf( stderr, "输入形式: copyFile 源文件名 目标文件名 \n" );
exit( EXIT_FAILURE );
}
if( ( in = fopen( argv[1], "rb") ) == NULL ) //第二个文件,就是被复制的文件打不开
{
fprintf( stderr, "打不开文件: %s \n", argv[1] );
exit( EXIT_FAILURE );
}
if( ( out = fopen( argv[2], "wb") ) == NULL ) //第三个文件,就是写入的文件打不开
{
fprintf( stderr, "打不开文件: %s \n", argv[2] );
fclose( in ); // 记得擦屁股
exit( EXIT_FAILURE );
}
while( (ch = getc(in)) != EOF ) // EOF == end of file
{
if( putc( ch, out ) == EOF )
{
break;
}
}
if( ferror( in ) ) //被复制的文件无法读取
{
printf("读取文件 %s 失败! \n", argv[1] );
}
if( ferror( out )) //写入文件无法读取
{
printf("写入文件 %s 失败! \n", argv[2] );
}
printf("成功复制1个文件!\n");
fclose( in );
fclose( out );
return 0;
}
|