如何将 argv[] 获取为 int?

2024-03-28

我有一段这样的代码:

int main (int argc, char *argv[]) 
{
   printf("%d\t",(int)argv[1]);
   printf("%s\t",(int)argv[1]);
}

在外壳中我这样做:

./test 7

但第一个 printf 结果不是 7,我怎样才能得到 argv[] 作为 int ?非常感谢


argv[1]是一个指向字符串的指针。

您可以使用打印它指向的字符串printf("%s\n", argv[1]);

要从字符串中获取整数,您必须首先对其进行转换。使用strtol将字符串转换为int.

#include <stdio.h>
#include <errno.h>   // for errno
#include <limits.h>  // for INT_MAX, INT_MIN
#include <stdlib.h>  // for strtol


int main(int argc, char *argv[])
{
    char *p;
    int num;

    errno = 0;
    long conv = strtol(argv[1], &p, 10);

    // Check for errors: e.g., the string does not represent an integer
    // or the integer is larger than int
    if (errno != 0 || *p != '\0' || conv > INT_MAX || conv < INT_MIN) {
        // Put here the handling of the error, like exiting the program with
        // an error message
    } else {
        // No error
        num = conv;
        printf("%d\n", num);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 argv[] 获取为 int? 的相关文章

随机推荐

  • Codeigniter 基准测试,这些 ms 来自哪里?

    我正在对我的网站进行基准测试 class Home extends Controller function Home parent Controller this gt benchmark gt mark Constructor start
  • 为什么当“%s”之外的任何内容与变体一起使用时,格式会崩溃?

    我正在与SysUtils Format http docwiki embarcadero com VCL en SysUtils Format功能和variant值 我发现该函数仅在格式字符串为 s 我检查了有关的文档Format函数 但不
  • 在 Ionic 框架中通过 JavaScript 从 PHP 获取 JSON 数组

    我正在尝试从服务器端 PHP 文件获取 JSON 数组 我将 PHP 设置为查询 MySQL 数据库并将结果作为 JSON 数组返回 我正在使用离子框架来开发应用程序 目前 我的应用程序使用硬编码的 JSON 数组 这需要用从 PHP 获得
  • 如何在循环中创建对象文字数组?

    我需要创建一个对象文字数组 如下所示 var myColumnDefs key label sortable true resizeable true key notes sortable true resizeable true 在这样的
  • 无法从待办事项列表中删除 li

    我正在创建一个待办事项列表应用程序 当用户单击他 她创建的待办事项时 我希望将其删除 但我测试的时候并没有删除 document ready gt input input on keypress check todo output ul l
  • 交换位置 (HC11)

    我只是在玩我的MC 68HC11 在 C 中 我可以通过执行以下操作来执行简单的字节交换 swapped num gt gt 24 0xff move byte 3 to byte 0 num lt lt 8 0xff0000 move b
  • Java Grpc:使 dns 缓存无效

    我有一个 grpc 客户端指向一个解析为 2 个 IP 地址的 url 问题是 当一个服务器节点出现故障然后恢复时 grpc 客户端不会选择它 所有负载都会转移到单个节点 我尝试建议改变networkaddress cache ttl财产
  • 如何从 Maya 事件中获取场景中高亮对象的变化?

    我正在使用 Maya2014 pyqt4 8 python2 7 我正在开发一个应用程序 它可以让您加快并简化 Maya 中项目的选择 是一个选择器 用户可以将其附加到场景中的对象 选择窗口中的对象会导致场景中对象的分离 但相反我找不到怎么
  • 用于匹配带有尾随空格的字符串的正则表达式在 Perl 中有效,但在 Python 中无效

    我试图找到具有尾随空格的字符串 即 foo 而不是 foo 在 Perl 中 我会使用 str foo print Match n if str s 当我在 Python 2 6 中尝试这个时 例如 import re str foo if
  • 更改路径颜色而不更改以前的路径

    我想创建一个小型绘画应用程序 我可以在其中使用一些颜色进行绘制 但我只测试了一种颜色更改 直到现在它无法正常工作 当我单击按钮并开始使用新颜色进行绘图时 我之前所做的所有绘图也会更改颜色 有人能帮我吗 public class MyTouc
  • 如何通过 $_GET 接受 URL 中的哈希标记?

    据我所知 井号 不会发送到服务器 因此我似乎无法使用原始 PHP 来解析数据 如下面的 URL 所示 index php name Ben address 101 S 10th St Suite 301 我希望使用 GET 数据预先填充表单
  • 我可以使用自回归建模进行信号去噪吗?

    如下 我的任务是使用 AR 建模来消除噪声信号中的伪影 假设我有原始数据中的心电图或肌电图 在 IEEE 上 我发现这可以通过小波变换 巴特沃斯滤波器或经验模式分解来实现 https www kaggle com residentmario
  • 如何从 json 对象初始化结构

    嗨 我是个新手 无法迅速提出任何想法 如何从 json 对象初始化结构 我不知道我该怎么做 用户 名称 cruskuaka 电子邮件 电子邮件受保护 cdn cgi l email protection 电话号码 018833455 地址
  • 将月份从名称转换为数字

    有没有简单的方法可以改变 month July 以便 nmonth 7 07也会好的 我可以做一个 case 语句 但肯定已经有一个要转换的函数了 编辑 我希望我能接受多个答案 因为你们两个基本上通过你们的力量组合给了我我所需要的东西 nm
  • 我可以在oracle中创建参数化视图吗

    我有一个这样的查询 SELECT ID REF ID BATCHNO FROM reporttbl where POSTING DT gt 06 01 2020 and POSTING DT lt 06 30 2020 我每个月都需要它 所
  • 为什么 Android 的 HttpUrlConnection 不支持 HTTP/2?

    我刚刚发现Android推荐的http客户端HttpUrlConnection不支持 HTTP 2 是否有特定原因不在 Android 上使用 HTTP 2 如果你想利用 HTTP 2 你可以使用 OkHttp https github c
  • SQL 一对多匹配多侧中的一侧 by ALL

    在下面的一对多中 CREATE TABLE source id int name varchar 10 PRIMARY KEY id CREATE TABLE params id int source int value int 其中 pa
  • 对数据进行分组并绘制多条线

    我想在 R 中为此数据集绘制多条线 x Year y Value School ID Year Value A 1998 5 B 1998 10 C 1999 15 A 2000 7 B 2005 15 每个学校都有不同年份的数据 我希望每
  • 设置输入占位符的样式,我该怎么做? [复制]

    这个问题在这里已经有答案了 可能的重复 使用 CSS 更改输入的 HTML5 占位符颜色 https stackoverflow com questions 2610497 change an inputs html5 placeholde
  • 如何将 argv[] 获取为 int?

    我有一段这样的代码 int main int argc char argv printf d t int argv 1 printf s t int argv 1 在外壳中我这样做 test 7 但第一个 printf 结果不是 7 我怎样