|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
复制代码
|
|