- 论坛徽章:
- 0
|
- #include<stdio.h>
- #include<string.h>
- #define MAXLINE 10000
- int getline(char *line, int max);
- /*find函数:打印与第一个参数指定的模式匹配的行*/
- main(int argc,int *argv[])
- {
- char line[MAXLINE];
- int found = 0;
- if(argc != 2)
- printf("Usage:find pattern\n");
- else
- {
- while(getline(line,MAXLINE) > 0)
- if(strstr(line,argv[1]) != NULL)
- {
- printf("%s",line);
- found++;
- }
- }
- return found;
- }
- /*getline:将输入字符串存储在s中,并返回输入字符串的长度*/
- int getline(char s[],int lim)
- {
- int c,i;
- i = 0;
- while(--lim > 0 && (c = getchar() ) != EOF && c != '\n')
- s[i++] = c;
- if(c == '\n')
- s[i++] = c;
- s[i] = '\0';
- return i;
- }
复制代码 用visual c++ 6.0编译了这个程序后,在cmd命令窗口里输入参数后,遇到的问题:
1,不管输入几个参数,如 “D:\WIN-tc\chapter_5\Debug\5.10_test4 ab ehabc” ,输出结果都是“Usage:find pattern”?
2,getline函数是“将输入字符串存储在s中,并返回此字符串的长度”,“输入字符”和 后续的“命令行参数”是什么关系呢?感觉执行阶段输入的(命令行)参数都保存在argv[]中了,没有用到getline()函数啊?
在命令行参数的这个地方卡主了,先谢谢啦~ |
|