c++ - 将字符数组的元素转换为整数,并使用 cout 打印

标签 c++

我认为这里发生了一些意想不到的事情。

int main(int argc, char* argv[]) {
    cout << "argv[1] : " << argv[1] << endl;
    cout << "(int)argv[1] : " << (int)argv[1] << endl;
}

当我这样称呼时:

$ ./a.out 1

输出为:

argv[1] : 1
(int)argv[1] : -1074470344

我希望

argv[1] : 1
(int)argv[1] : 49

因为 '1' 的 ASCII 代码是 49。

这里发生了什么?

最佳答案

请记住,argv 的类型是 char* argv[],因此 argv[1] 不是单个 char ,而是一个 C 风格的字符串。

要打印第一个字符,请使用argv[1][0]

std::cout << "(int)argv[1][0] : " << (int)argv[1][0] << std::endl;

关于c++ - 将字符数组的元素转换为整数,并使用 cout 打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23453042/

相关文章:

c++ - POSIX 线程中的唯一值

c++ - C++ API 缺少修改方法

c++ - 添加 endl 修复代码

c++ - C++ 中的关联键到键映射

c++程序编译错误,找不到/访问文件

c++ - 为什么我的 CPP 在程序结束后随机运行

c++ - 如何折叠STL vector 的子 vector ?

c++ - 导致无限循环的括号

c++ - Eclipse C/C++ 控制台行为异常

C++ 为什么 ofstream 指向的文件未填充?