|
|
3鱼币
本帖最后由 魁拔 于 2012-8-8 13:17 编辑
我是按照c++快速入门第四讲里例子的代码原样敲下来的,上群里问,很多人说,这个程序错了,没有输入环节,但是视频里的程序和这个一样,为什么视频里的可以运行,而这个却在运行exe文件时,一闪而过
#include<stdio.h>
#include<stdlib.h>
int main(int argc,char* argv[])
{
FILE *in,*out;
int ch;
if(argc!=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)
{
if(putc(ch,out)==EOF)
{
break;
}
}
if(ferror(in))
{
printf("读取文件:%s 失败!\n",argv[1]);
}
if(ferror(out))
{
printf("写入文件:%s 失败!\n",argv[2]);
}
printf("成功复制一个文件!\n");
fclose(in);
fclose(out);
return 0;
}
大家帮我看一下,
这个程序的功能是复制文件
我也不知道错误在哪 对于这个程序的exe文件,在用cmd.exe时,我电脑上的cmd.exe默认的操作位置在windows\system32>,而别人的不是,例如小甲鱼老师的可以自由输入文件位置,还有就是文件中的argv[]数组指针在我们编写的程序里,怎么可能,在cmd.exe调用所编写的程序之前,事先给所编写的程序在内存上分配一个指针呢(就是说指针在程序内部,而这个指针却事先给他所在的程序指定一个内存位置——这时程序并未运行,指针又是如何出来的?然后这个程序才分配到指针所指向的内存,最后开始运行——“程序刚刚运行,指针又是如何在运行之前跑出来指定内存位置呢?”,这有别常理呀),还有fprintf可以换成print吗?
|
最佳答案
查看完整内容
不懂诶,main函数是一个函数,谁来调用它谁给他参数吧,
就理解成系统给那几个参数赋值的就好了,
|