C getopt 多个值

2024-02-24

我的论点是这样的

./a.out -i file1 file2 file3

我该如何利用getopt()获取 3 个(或更多)输入文件? 我正在做这样的事情:

while ((opt = getopt(argc, argv, "i:xyz.."))!= -1){
  case 'i':
     input = optarg; 
     break;
  ...
}

我只得到file1;如何获得file2, file3?


我知道这已经很老了,但我在寻找解决方案时遇到了这个。

while((command = getopt(argc, argv, "a:")) != -1){

    switch(command){
        case 'a':

        (...)

        optind--;
        for( ;optind < argc && *argv[optind] != '-'; optind++){
              DoSomething( argv[optind] );         
        }

        break;
    }

我找到内部选择(外部使用getopt()) 指向“当前位置”之后的下一个位置argv' 选择者getopt(); 这就是为什么我一开始就减少它。

首先for loop检查当前参数的值是否在以下范围内argv (argc是数组的长度,因此数组 argv 中的最后一个位置是argc-1)。 第二部分&&比较下一个参数的第一个字符是否为“-”。如果第一个字符是“-”,那么我们就用完了当前参数的下一个值,否则 argv[optind] 就是我们的下一个值。依此类推,直到 argv 结束或参数用完值。

最后增量optind检查下一个 argv。

请注意,因为我们正在检查 'optind ' 除非第一部分为真,否则条件的第一第二部分将不会被执行,因此不必担心读取数组边界之外的内容。

PS 我是一个相当新的 C 程序员,如果有人有改进或批评,请分享。

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

C getopt 多个值 的相关文章

  • 无法使用 strptime() 获取秒数

    我收到 YYYY MM DDThh mm ss S Z hh mm 这种格式的日期时间 我正在尝试使用复制该值strptime如下所示 struct tm time 0 char pEnd strptime datetime Y m dT
  • UTF8/UTF16 和 Base64 在编码方面有什么区别

    In c 我们可以使用下面的类来进行编码 System Text Encoding UTF8 System Text Encoding UTF16 System Text Encoding ASCII 为什么没有System Text En
  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • Signalr 在生产服务器中总是陷入长轮询

    当我在服务器中托管应用程序时 它会检查服务器端事件并始终回退到长轮询 服务器托管环境为Windows Server 2012 R1和IIS 7 5 无论如何 我们是否可以解决这个问题 https cloud githubuserconten
  • 在 Xamarin Android 中将图像从 URL 异步加载到 ImageView 中

    我有一个包含多个项目的 ListView 列表中的每个项目都应该有一个与之关联的图像 我创建了一个数组适配器来保存每个列表项并具有我希望加载的图像的 url 我正在尝试使用 Web 请求异步加载图像 并设置图像并在加载后在视图中更新它 但视
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • 如何在 WPF RichTextBox 中跟踪 TextPointer?

    我正在尝试了解 WPF RichTextBox 中的 TextPointer 类 我希望能够跟踪它们 以便我可以将信息与文本中的区域相关联 我目前正在使用一个非常简单的示例来尝试弄清楚发生了什么 在 PreviewKeyDown 事件中 我
  • c 中的错误:声明隐藏了全局范围内的变量

    当我尝试编译以下代码时 我收到此错误消息 错误 声明隐藏了全局范围内的变量 无效迭代器 节点 根 我不明白我到底在哪里隐藏或隐藏了之前声明的全局变量 我怎样才能解决这个问题 typedef node typedef struct node
  • C# 用数组封送结构体

    假设我有一个类似于 public struct MyStruct public float a 我想用一些自定义数组大小实例化一个这样的结构 在本例中假设为 2 然后我将其封送到字节数组中 MyStruct s new MyStruct s
  • 按字典顺序对整数数组进行排序 C++

    我想按字典顺序对一个大整数数组 例如 100 万个元素 进行排序 Example input 100 21 22 99 1 927 sorted 1 100 21 22 927 99 我用最简单的方法做到了 将所有数字转换为字符串 非常昂贵
  • 为什么模板不能位于外部“C”块内?

    这是一个后续问题一个答案 https stackoverflow com questions 4866433 is it possible to typedef a pointer to extern c function type wit
  • Windows 窗体不会在调试模式下显示

    我最近升级到 VS 2012 我有一组在 VS 2010 中编码的 UI 测试 我试图在 VS 2012 中启动它们 我有一个 Windows 窗体 在开始时显示使用 AssemblyInitialize 属性运行测试 我使用此表单允许用户
  • 我的 strlcpy 版本

    海湾合作委员会 4 4 4 c89 我的程序做了很多字符串处理 我不想使用 strncpy 因为它不会终止 我不能使用 strlcpy 因为它不可移植 只是几个问题 我怎样才能让我的函数正常运行 以确保它完全安全稳定 单元测试 这对于生产来
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 更改窗口的内容 (WPF)

    我创建了一个简单的 WPF 应用程序 它有两个 Windows 用户在第一个窗口中填写一些信息 然后单击 确定 这会将他们带到第二个窗口 这工作正常 但我试图将两个窗口合并到一个窗口中 这样只是内容发生了变化 我设法找到了这个更改窗口内容时
  • 网络参考共享类

    我用 Java 编写了一些 SOAP Web 服务 在 JBoss 5 1 上运行 其中两个共享一个类 AddressTO Web 服务在我的 ApplycationServer 上正确部署 一切都很顺利 直到我尝试在我的 C 客户端中使用
  • 检查 url 是否指向文件或页面

    我们需要以下内容 如果文件确实是文件 则从 URL 下载该文件 否则 如果它是一个页面 则什么也不做 举个简单的例子 我有以下命令来下载文件 My Computer Network DownloadFile http www wired c
  • char指针或char变量的默认值是什么[重复]

    这个问题在这里已经有答案了 下面是我尝试打印 char 变量和指针的默认值 值的代码 但无法在控制台上看到它 它是否有默认值或只是无法读取 ASCII 范围 include
  • 如何在内存中存储分子?

    我想将分子存储在内存中 这些可以是简单的分子 Methane CH4 C H bond length 108 7 pm H H angle 109 degrees But also more complex molecules like p

随机推荐

  • 如何将 Xamarin.Forms XAML UI 页面转换为 PDF 文件?

    在Xamarin Forms中 我想将我的xaml页面UI 有时我的页面在有更多内容时是可滚动的 转换为PDF 我已经尝试过PDFSharp https github com akgulebubekir PDFSharp Xamarin F
  • 在 XMLAGG 中对重复记录使用不同值

    我在 sql 中使用 XMLAGG 时遇到问题 我有一个包含多个可以重复的记录的表 该表包含客户地址和客户名称 Create Table cust data cust name varchar2 30 cust addr line1 var
  • 在浏览器中使用Q库

    我需要使用Q图书馆 http documentup com kriskowal q http documentup com kriskowal q 在浏览器中 我想用RequireJS加载这个库 但我不知道如何做到这一点 我知道如何加载我自
  • 在整个 oracle 数据库中搜索字符串的一部分

    我正在尝试在整个 Oracle 数据库中查找特定字符串 我已经按照此处另一个主题中的示例进行了操作 在所有表中的所有字段中搜索特定值 Oracle https stackoverflow com questions 208493 searc
  • Android - Espresso 测试 - 关闭应用程序然后重新打开它?

    在我的浓缩咖啡测试中 我使用 device pressBack 关闭应用程序 然后我想在某个活动中重新打开应用程序 但我不太确定该怎么做 因为此时我什至没有上下文 有人有想法吗 好的 我知道了 您在测试类中定义规则 Rule public
  • Visual Studio 的“自动解析”功能不适用于扩展方法 - 现在怎么办?

    我喜欢视觉工作室中的 解决 功能 典型场景 Type in Debug Type 请注意 没有出现智能感知 右键点击 选择解决 Choose using System Diagnostics or System Diagnostics De
  • 通过依赖注入使用 Blazor Webassemble 进行 gRPC-Web 通道身份验证

    我正在 Blazor Web assembly 中通过身份验证测试 gRPC Web 并在如何干净地访问我的 gRPC 通道方面遇到了一些障碍 无需身份验证 有一种非常简单明了的方法 如 grpc dotnet 的 Blazor 示例中详细
  • 如何在有条件的字符串之间添加字符

    如果字符串中存在 20 则必须用 OR 替换 abc 20 def 预计出 gt abc OR def if 字符串中必须替换为 OR abc def Expected out gt abc OR def string abc def 需要
  • 简单的 Flask/gevent 请求没有同时运行

    我有这个简单的 Flask gevent 演示代码 usr bin env python import gevent from gevent pywsgi import WSGIServer from gevent import monke
  • 如何使用CSS创建没有图像的纹理纸背景[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有没有办法使用 CSS 创建没有图像的背景 颜色和纹理 正如达斯汀所说 CSS 不存在 纹理 功能 然而 如果你使用 CSS3 你可以
  • Facebook sdk 在应用程序委托中崩溃

    以下是我复制该错误的方法 这是我用于登录的代码 IBAction func FBLoginAction sender AnyObject fbLoginManager loginBehavior FBSDKLoginBehavior bro
  • 由于 Web 部署而将绝对路径更改为相对路径(Python - Flask)

    我创建了一个可以在本地运行的应用程序 我想将其部署到 Heroku 当我部署它时 我在 Heroku 日志中收到错误 提示找不到我在脚本中指定的文件夹 正如预期的那样 它们是绝对路径 我正在尝试做出改变 但没有一个有效 我在服务器端使用 F
  • 如何在 iOS SDK 中为用户提供预先编写的 SMS 消息

    我使用 Apple Dev 网站上的示例代码来学习如何设置预写电子邮件 但是有没有办法类似地设置预写短信 首先你必须添加框架MessageUI到您的项目并导入库 MessageUI MessageUI h 然后遵守协议
  • Android - 将视频/音频文件上传到 Firebase 存储

    我正在使用 Firebase 存储来保存视频 音频用户的文件 我的主要想法是将每个视频 音频保存在用户 ID UID 下 这意味着每个用户在其 UID 下保存有多个视频 音频文件 我写了一个代码 问题是他不断将新视频保存在我保存的旧视频上
  • JavaFX 菜单栏中的菜单右对齐

    In Java Swing可以使用以下方法将菜单放在菜单栏的右侧 menubar add menu1 menubar add Box createHorizontalGlue menubar add menu2 这将把menu1在左边和me
  • 如何播放 MP3 文件? [复制]

    这个问题在这里已经有答案了 我正在尝试访问MP3 http en wikipedia org wiki MP3音频文件保存在我的源文件夹中 以便我可以在 Java 程序 应用程序 而不是小程序 中播放它 我似乎遇到的问题是我无法导入java
  • HTML5在画布上拖放路径,无需JS库

    我想在 HTML5 画布上拖放路径 如果我们点击形状 我没有发现任何类似 SVG 提供事件的东西 有人知道我如何在这里处理路径项上的事件吗 我想在没有任何java脚本库的情况下做到这一点 以下是我当前绘制路径的代码 var canvas d
  • MongoDB索引定义策略

    我有一个基于 MongoDB 的数据库 里面有大约 100K 到 500K 文本文档 并且该集合不断增长 系统应支持文档不同字段的查询 例如 标题 类别 重要性等 该系统是一个近乎实时的系统 每 5 10 分钟就会获取新文档 为了提高查询性
  • 引用具有动态工作表名称的另一个工作簿

    我想引用另一个工作簿和一个依赖于某些单元格值的特定工作表 这个方程有效 S 停机时间 11 Nov 2013 Downtime Tracker xls 30 F 12 但值 Nov 和 30 是动态的 它们分别取决于 D13 和 E13 的
  • C getopt 多个值

    我的论点是这样的 a out i file1 file2 file3 我该如何利用getopt 获取 3 个 或更多 输入文件 我正在做这样的事情 while opt getopt argc argv i xyz 1 case i inpu