1. feof是c语言标准库函数函数,原型在stdio.h中,功能是检测流上的文件结束符,若文件结束,返回非0值,否则返回0,文件结束符只能被clearerr()清除。
原型:int feof(FILE *stream);
!feof()就是对返回值取反。
2. #define命令是c语言中的一个宏定义命令,用来将一个标识符定义成一个字符串,该标识符被称为宏名,被定义的字符串成为替换文本。
简单的宏定义: #define <宏名> < 字符串>
例:#define PI 3.1415926
带参数的宏定义: #define <宏名> (<参数表>) < 宏体>
例:#define A(x) x
一个标识符被宏定义后,该标识符便是一个宏名。这时,在程序中出现的是宏名,在该程序被编译前,先将宏名用被定义的字符串替换,这称为宏替换,替换后才进行编译,宏替换是简单的替换。
读别人的代码,先将程序中对宏的使用全部替换成它所代表的字符串,不要自作主张添加任何其他符号。若自己编程使用宏替换,则在使用简单宏定义时,当字符串不只一个符号时,加上括号表现优先级,如果是带参数的宏定义,则要给宏体中的每个参数加上括号,并在整个宏体上再加一个括号。
3. 默认argc为1,argv[0]为程序名称
如果输入一个参数,则argc为2,argv[0]为程序名称,argv[1]为输入的那个参数
依此类推,多个参数的情况
void main(int argc,char *argv[]),直接讲就是argc表示你使用这个程序时输入参数的个数,argv[]表示各个参数。
例子:
比如你使用ping命令时,ping www.baidu.com,这时argc=2 argv[0]="ping" argv[1]=www.baidu.com
具体到你那个程序,第6行表示你必须输入一个文件名,只有一个程序名是不可以的;第12行就是打开了一个文件啊,这个数组就是文件名。
给它参数,打开CMD(传说中的命令提示符),然后CD到生成EXE的目录,然后输入:程序名.exe 123.txt
注意:可以自己在可执行文件目录下新建一个123.txt文件