电话本--------分离命令和输入参数
2013-12-05 10:31
211 查看
// 2.16.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <windows.h> #include <string.h> const unsigned int MAX_LENGTH_OF_CMD = 300; const char* DEFAULT_FILE_NAME = "temp.txt"; /* strDefaultFileFullPath要确保足够的存储空间,建议为MAX_PATH */ bool GetDefaultFileFullPath(char *strDefaultFileFullPath, const char *strDefaultFileName, const char *strArgv0) { int i = strlen(strArgv0) - 1; while(i >= 0) { if(strArgv0[i] == '\\') break; i--; } if(i < 0) { strcpy(strDefaultFileFullPath, strDefaultFileName); } else { strcpy(strDefaultFileFullPath, strArgv0); strcpy(strDefaultFileFullPath + i + 1, strDefaultFileName); } return true; } void DisplayDefaultFile(const char *strDefaultFileFullPath) { FILE *fp = fopen(strDefaultFileFullPath, "r+"); if(fp != NULL) { while(1) { char buf[MAX_PATH]; if(fgets(buf, MAX_PATH, fp) == NULL) break; printf("%s", buf); } fclose(fp); } else { printf("Default file does not exist.\n"); } } void EnterCommandLoop() { char cmd[MAX_LENGTH_OF_CMD]; while(1) { printf("Please input your command : "); if(scanf("%[^\n]", cmd) == 0) { fflush(stdin); continue; } fflush(stdin); //所有命令头只有3个字符,将第三个字符串赋值为‘\0’ cmd[3] = 0; printf("Your command is : %s\n", cmd); if(strcmp(cmd, "-ld") == 0) { printf("will import phone book\n"); char file[MAX_PATH]; strcpy(file, cmd + 4); printf("Load file needed is: %s\n", file); continue; } if(strcmp(cmd, "-sa") == 0) { printf("will export phone book\n"); continue; } if(strcmp(cmd, "-se") == 0) { printf("will save phone book\n"); continue; } if(strcmp(cmd, "-ad") == 0) { printf("will add item(name phone)\n"); continue; } if(strcmp(cmd, "-qt") == 0) { printf("quit now ....\n"); break; } } } int _tmain(int argc, _TCHAR* argv[]) { char DefaultFileFullPath[MAX_PATH]; GetDefaultFileFullPath(DefaultFileFullPath, DEFAULT_FILE_NAME, argv[0]); printf("Default file path: %s\n", DefaultFileFullPath); DisplayDefaultFile(DefaultFileFullPath); EnterCommandLoop(); return 0; }
相关文章推荐
- 电话本------改进值分离命令和参数
- read命令-输入参数不区分字母大小写
- alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。
- 命令参数输入不可见字符
- C#根据域名查询IP(CMD命令参数输入或者启动程序后再输入查询)
- vs2010 下输入控制台命令参数
- shell脚本传参实现scp命令无需输入密码和别的参数
- linux下命令执行结果作为其他命令输入参数
- c++学习main函数输入参数argc argv,vs2008输入参数设置,cmd常用命令
- Microsoft SQL Server 2000在复制的时候包含两个过程,攻击者可以操作输入提供恶意参数给存储过程,可导致执行任意命令。
- linux下命令执行结果作为其他命令输入参数
- 带有参数的command命令形式-----避免文本框中输入单引号时出错
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- linux下命令执行结果作为其他命令输入参数
- 使用openssl生成.p12文件时,直接在命令中带密码参数,而不用在终端运行命令时输入
- Linux 处理复杂输入参数命令 getopt
- 调试时不用在cmd中输入命令参数,直接在属性页中操作
- linux--shift命令part2(可变控制输入参数)
- c++学习main函数输入参数argc argv,vs2008输入参数设置,cmd常用命令
- linux--shift命令part1(可变控制输入参数)