c - C - 字符到 ASCII:'a' 打印为 6
问题描述
我一直在尝试在 C 中将 char 转换为 ascii。我注意到,当输入像 'a' 这样的字符而不是程序打印 'a', 97 时,它会打印 6、54。出于某种原因,它正在接受我的输入 ' a' 为 6,我不知道为什么。
代码如下。
#include <stdio.h>
#define MAX 100
int main(int _nArgs, char _cArgs[MAX])
{
printf("%c, %i", _cArgs[1], _cArgs[1]);
return 0;
}
解决方案
您main
错误地定义了函数。
你可以定义main
为:
int main(void) {
/* ... */
}
或作为
int main(int argc, char *argv[]) {
/* ... */
}
或等效的(或以某种实现定义的方式,但不要担心)。
您已将 的第二个参数定义main
为 的数组char
,该数组已调整为 type char*
。它必须是char**
或char *[]
。(并且MAX
声明中的 被悄悄地忽略了。)
您可以为参数使用任何您喜欢的名称,但argc
和argv
是常规名称,没有充分的理由使用其他名称。
解决此问题后,您可以将第一个命令行参数的第一个字符称为argv[1][0]
. (argv[0]
指向代表程序名称的字符串。)
\n
您应该在输出的末尾打印一个换行符。
推荐阅读
- mqtt - 使用 TC3_IoT_Communication 的 MQTT;没有与 MQTT 代理连接,但没有错误
- pandas - 如何确定熊猫中非NaN系列的结尾
- php - 未定义的属性:stdClass::$id 用于 laravel API
- java - 想法:发现太多模块声明
- haskell - 查看模块的隐式导出
- openweathermap - 这个开放天气错误“25.00 平方度”是什么意思
- less - 更少的 CSS:是否可以在参数 mixin 中访问常量
- r - 如何使用R删除data.frame中特定列中的字符?
- vba - 为什么倒数计时器放置在 SlideMaster 中时会冻结?
- oauth-2.0 - Kafka OAuth:无法识别的 SASL 登录回调