c++ - *argv[] 的解引用值不准确

标签 c++ pointers argv

我正在尝试编写一个程序来查找给定值的最大质因数。

如果我运行 ./a.out 55 , cout << "Input " << *argv[1]<< endl;返回 5 而不是 55。

当我取出星号并检查指针 `value(argv[1]) 时,我得到 55。我很困惑为什么会这样。

int main(int argc, char *argv[])
{
    if(argc == 2)
    {
        cout << "Input  " << *argv[1]<< endl;
        // cout << "Biggest Prime Factor of 34 is : " << findPrime(number, 0) << endl;
    }
    else
        cout << "Too many inputs:" << endl;
    return 0;
}

最佳答案

删除*:

cout << "Input  " << argv[1] << endl;
                    ^ 

因为*argv[1]表示argv[1]的第一个字符。您需要整个字符串。

关于c++ - *argv[] 的解引用值不准确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9512689/

相关文章:

c++ - ICU 货币区域获取面额

c++ - Visual Studio 2010 - 无法打开源文件 <QtGui/QApplication>

c - C 中带有指针的这些 volatile 是什么意思?

c++ - 基本 C++ 函数指针和结构

python - len(sys.argv) <= 0 怎么可能?

c++ - boost 内点的几何多边形距离

c++ - 如何在它之外的模板类中使用模板参数?

c - 从函数返回后数组内容发生变化

c - 通过分隔符分割 argv 数组中的参数

c - OpenCV argc 和 argv 混淆