我认为这里发生了一些意想不到的事情。
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/