注册 登录
编程论坛 C++教室

请神给予指引,告诉我答案。

okay011 发布于 2012-07-12 18:06, 396 次点击
这是一个小计算器程序,用cmd启动,输入命令行参数,经测试,可运行,完成2数,加减乘除后显示结果操作。
#include<iostream>
#include<fstream>
#include<sstream>
using namespace std;
 int main(int argc,char** argv){
   if(argc!=2)                        //这行什么意思?argc个数不等于2?有什么功能?他对整个程序运行有什么作用?
     cout<<"usage: test command\n";   //而且把if和else 都删了,会出现调试错误,为什么?
   else{
      string s(argv[1]);
      istringstream  sin(s);
      int a,b;  char c;
      sin>>a>>c>>b;     
     switch(c){
      case '-':cout<<a-b;break;
      case '+':cout<<a+b;break;
      case '*':cout<<a*b;break;
      case '/':cout<<a/b;break;
      default:cout<<"错误";
                          }
       }
 
}  
3 回复
#2
peach54602012-07-12 20:00
int argc,char** argv
argc参数个数
argv具体的参数指令
#3
okay0112012-07-12 21:30
谢谢楼上,但是你说的我都明白具体是这句 if(argc!=2) //这行什么意思?argc个数不等于2?有什么功能?他对整个程序运行有什么作用?
                                        cout<<"usage: test command\n";
#4
peach54602012-07-13 06:19
比如说,你输入 calc 1+2
argc就是2,argv就是calc和1+2
然后calc是你的调用命令
1+2才是你的运算式

假如输入是calc 1+2 XXX(任意字符)
这时argc就不为2
整个命令就是错的,就要输出
cout<<"usage: test command\n(请检查命令)
1