c - 将 char 数转换为 int c
问题描述
所以基本上我的问题是我有来自标准输入的 argv 数组,如果我输入./a.out 1
我想将此1转换为int或long,问题是如果我将转换为 long 它会将数字转换为随机数如果我将它转换为 int,我可能会收到警告和错误。
程序:
#include <stdio.h>
int main(int argc, char* argv[]) {
int j = (int) argv[1];
printf("* j = %d\n",j);
return 0;
}
解决方案
尝试将其更改为:
int j = atoi(argv[1]);
您可能还需要添加到顶部:
#include <stdlib.h>
编辑:为了满足这些孩子和他们新奇的标准功能。(“验证”这个和“未定义的行为”......在我的日子里,我们应得的atoi
!我们很幸运拥有它!)
char* endPtr;
long j = strtol(argv[1], &endPtr, 10);
printf("j = %ld\n", j);
推荐阅读
- python - Python - Apache Beam - Flink 运行器设置:ReadFromKafka 返回错误 - RuntimeError:无法编码空字节 []
- node.js - 如何解决 Node.js 的 New Relic 由于错误而停止启动:错误:无法连接到收集器?
- google-cloud-firestore - 检查多个文档是否存在 id Firestore 集合
- mongodb - Mongod服务退出代码2
- python - 如何在 matplotlib 图表的下侧显示值?
- javascript - 如何在 Jquery 中使用 math.round 追加值
- python-3.x - 通过 scapy 配置 STP 协议
- ms-access - 选定的前景色未显示在 Access 组合框中
- python - 通过在 python 中合并其他两个蒙版来创建新的灰度蒙版图像
- php - errore SQLstate 23000 我无法将某些 JSON 值保存到我的数据库中