如何检查是否给出了参数?

2023-12-08

//Checks if an argument was specified
if (argv[1] != "")
    strcpy(Buff1, argv[1]);
else
    strcpy(Buff1, "default");

如果我运行:./program test

增益1 = 测试

如果我运行:./program

Buff1 = 包/=包

如果没有指定任何内容,如何使 Buff1 默认为“默认”?


好的,如果没有传递任何内容,argc 将为 1(argc 给出传递参数的数量)。这意味着其中唯一包含任何内容的 argv 元素将是 argv[0](其中包含程序的名称)。这意味着对 argv[1] 的调用将是一个超出范围的索引,可能会导致崩溃,或者如果幸运的话将只是垃圾数据。

if(argc == 1)
   strcpy(Buff1, "default");

else if(argc == 2)
    strcpy(Buff1, argv[1]);

else
    //do something here if there is more than 1 argument passed to it

还值得注意的是,您传递示例参数的方式并不符合您的预期:“./program test Buff1 = test”将导致 argc 为 4,argv[0] 为“test”,argv [1] 为“Buff1”,argv[2] 为“=”,argv[3] 为“test”。

只需调用“./program test helllooo”即可与我提供的程序 snipit 配合使用,用“helllooo”填充 Buff1。调用“./program test”也可以,用“default”填充Buff1。要执行更高级的操作,您必须使用命令行开关(例如 ./program test -b somehere -x somehere),这只是解析 argc 和 argv 的更高级方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何检查是否给出了参数? 的相关文章

  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • 将数组向左或向右旋转一定数量的位置,复杂度为 o(n)

    我想编写一个程序 根据用户的输入 正 gt 负 include
  • 使闭包捕获的变量变得易失性

    闭包捕获的变量如何与不同线程交互 在下面的示例代码中 我想将totalEvents 声明为易失性的 但C 不允许这样做 是的 我知道这是错误的代码 这只是一个例子 private void WaitFor10Events volatile
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 如何将图像和 POST 数据上传到 Azure 移动服务 ApiController 终结点?

    我正在尝试上传图片and POST表单数据 尽管理想情况下我希望它是json 到我的端点Azure 移动服务应用 我有ApiController method HttpPost Route api upload databaseId sea
  • 将目录压缩为单个文件的方法有哪些

    不知道怎么问 所以我会解释一下情况 我需要存储一些压缩文件 最初的想法是创建一个文件夹并存储所需数量的压缩文件 并创建一个文件来保存有关每个压缩文件的数据 但是 我不被允许创建许多文件 只能有一个 我决定创建一个压缩文件 其中包含有关进一步
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 在数据库中搜索时忽略空文本框

    此代码能够搜索数据并将其加载到DataGridView基于搜索表单文本框中提供的值 如果我将任何文本框留空 则不会有搜索结果 因为 SQL 查询是用 AND 组合的 如何在搜索 从 SQL 查询或 C 代码 时忽略空文本框 private
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • Process.Start 阻塞

    我正在调用 Process Start 但它会阻止当前线程 pInfo new ProcessStartInfo C Windows notepad exe Start process mProcess new Process mProce
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 为什么 as.Date 在字符向量上速度很慢?

    我开始在 R 中使用 data table 包来提高代码的性能 我正在使用以下代码 sp500 lt read csv rawdata GMTSP csv days lt c Monday Tuesday Wednesday Thursda
  • 在《哈姆雷特》中使用 UTCTime

    我在我的第一个网站上使用 Yesod 并且有一个新闻列表 NewsItem date UTCTime default CURRENT TIME title String content String author String 在我的处理程
  • 如何在 Rust 中将值推入 2D Vec?

    这是一个非常简单的 2D 尝试Vec 我正在尝试将一个元素添加到顶层的最后一个条目Vec fn main let mut vec 2d vec vec if let Some v vec 2d last v push 1 println v
  • JSP 单选按钮值

    我想知道如何获取单选按钮的值 假设我有一个带有两个单选按钮的表单 我想获取与按钮关联的值 但是 当我尝试这样做时 我得到了 null 表格部分
  • js函数从url获取文件名

    我有一个像这样的网址http www example com blah th html 我需要一个 javascript 函数来给我其中的 th 值 我的所有网址都具有相同的格式 2 个字母的文件名 扩展名为 html 我希望它是一个安全的
  • VBA - 比较 2 张纸上的表格的差异

    我是 VBA 新手 正在寻求编写子程序或代码的帮助 该子程序或代码可以比较 2 个不同工作表上两个表的同一列 B 并将它们合并到第一个工作表上的单个表中 我已经研究过如何做到这一点 并且对于使用范围或联合作为解决方案感到非常困惑 我希望它找
  • 必须声明标量变量

    当我尝试在应用程序中执行以下非查询 sql 命令时 我总是收到错误消息 必须声明标量变量 RateID 我有点不明白为什么会收到这个错误 这是我的代码 string sqlText INSERT INTO tblRates RateID I
  • 如何使用delphi 2010 rtti设置数组长度

    如何在运行时设置数组长度 setLength t GetProperty 属性 3 unit Unit3 interface uses Windows Messages SysUtils Variants Classes Graphics
  • 订购 Pyspark Window 时缺少数据

    这是我当前的数据集 from pyspark sql import Window import pyspark sql functions as psf df spark createDataFrame 2 1 1 3 2 2 schema
  • next() 和 list() 中的每一个都以不同的方式迭代具有可变对象的生成器

    def generator dct for i in range 3 dct a i yield dct g generator a None next g gt a 0 next g gt a 1 next g gt a 2 g gene
  • 如何从 BeautifulSoup get text 方法中去除换行符

    抓取网页后我有以下输出 text Out 50 nAbsolute FreeBSD 2nd Edition n nAbsolute OpenBSD 2nd Edition n nAndroid Security Internals n nA
  • 如何使用 MVVM 从 BackgroundWorker 内部更新 ObservableCollection?

    这两天我正在尝试解决以下问题 我有一个 WPF 控件 其中 WrapPanel 绑定到 ObservableCollection 操作会更改 ObservableCollection 的内容 内容加载到BackgroundWorker 中
  • 用于升级外部主板的 Android 应用程序

    背景 我们创建了一个 Android 应用程序 目前通过蓝牙连接与外部主板进行通信 该板依次发出命令以不同的速度运行一个或多个电机 该应用程序是为海洋行业的特定任务而构建的 我们的目标是增强该应用程序 以便 Android 移动用户 将来
  • 在 Windows 上的 Matlab 中使用 getframe

    I used the code which I asked about here but added in the final loop the ani ii getframe and after the loop movie2avi an
  • 致命错误 LNK1158:无法运行“mt.exe”

    我知道问题编译 VS 2012 C 项目时出现致命错误 无法运行 mt exe 但我对那里的答案不满意 我将我的 Visual Studio 项目从 VS2010 转换为 VS2012 但是当我编译我的解决方案时 我收到 致命错误 LNK1
  • 编写C#插件系统

    我正在尝试编写一个插件系统 为我的应用程序提供一些可扩展性 以便有人可以为该应用程序编写插件 而无需触及主应用程序的代码 并有破坏某些内容的风险 我已经编写了基本的 IPlugin 接口 atm 尚未实现任何内容 这是我的加载方式 publ
  • 如何在上传文件时添加进度条

    我正在将文件传输到网址 我可以成功完成 但我不知道如何获取已上传文件的进度 我需要获取某些数字的进度 fileTransfer upload file path api endpoint options data then data gt
  • 捕获没有文本框的键盘输入

    我有一个应用程序 可以从健康卡中读取数据并解析它们以获取出生日期 健康卡 和姓名等基本信息 现在 我有一个文本框 可以从刷卡器中获取输入 效果很好 但我觉得可能有更好的方法 我希望在应用程序的后台有一个键盘侦听器 它可以捕获刷卡器的输入并解
  • Crystal Reports - 计数公式

    我正在 Crystal 中开发一份报告 我需要对具有几种不同状态的特定字段进行计数 例如 我的报告中有一个 StatusType 字段 其中包含的值是 In Process Rejected On Hold or Submitted 我希望
  • 如何检查是否给出了参数?

    Checks if an argument was specified if argv 1 strcpy Buff1 argv 1 else strcpy Buff1 default 如果我运行 program test 增益1 测试 如果