24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1845  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

sciencejoy

新虫 (著名写手)

[交流] C++从命令行读取参数已有6人参与

在科学计算中,用户经常需要在程序运行的时候设置一些参数,用户可以在命令行达到此目的。

比如要用有限差分法计算一条棒的温度分布,用户需要设置棒的热导率、差分网格的节点数目。
CODE:
#include <iostream>
#include <cstdlib>

int main(int argc, char *argv[])
{
     std::cout << "Number of command line arguments = "
                   << argc << "\n";

     for (int i=0; i<argc; i++)
     {
         std::cout  << "Argument " << i << " = " << argv[i];
          std::cout << "\n";
      }

      std::string program_name = argv[0];
      int number_of_nodes = atoi(argv[1]);
      double conductivity = atof(argv[2]);
       std::cout << "Program name = " << program_name << "\n";
       std::cout << "Number of nodes = " << number_of_nodes;
       std::cout << "\n";
       std::cout << "Conductivity = " << conductivity << "\n";

        return 0;
}

如果计算需要100个节点,热导率为5.0,程序可执行文件名为CommandLineCode,在命令行输入
CODE:
./CommandLineCode 100 5.0

argc存储命令行输入的量的数目,在这个例子里为3,分别为./CommandLineCode,整数 100,浮点数 5.0,分别存储在argv[0],argv[1],argv[2]。函数 atoi(argv[1])把存储在argv[1]的字符转换成整型变量,atof(argv[2])把argv[2]转换成浮点变量。函数atoi和atof需要头文件cstdlib。

[ Last edited by sciencejoy on 2014-2-22 at 20:57 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sciencejoy 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见