*argv[]的取消引用值不准确
dereferenced value of *argv[] not accurate
我正试图制作一个程序,找到给定值的最大素数。
如果我运行./a.out 55
,cout << "Input " << *argv[1]<< endl;
将返回5而不是55。
当我取出星号并检查指针的值(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]
的第一个字符。您需要整个字符串。
很简单:
argv[1]
是包含第一个参数的C字符串*argv[1]
是该字符串的第一个字符
如果后者令人困惑,请注意*argv[1]
等同于argv[1][0]
。
总之,你想要:
cout << "Input " << argv[1]<< endl;
argv是指向字符数组的指针。
然后你做例如argv[0]
,你会得到一个字符表,例如一些文本。
因此,如果您想在argv[0]
下隐藏文本,则不需要在argv[0]
之前放置星号。
相关文章:
- 关于类的 Python 文档 - 对C++的引用不正确
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- 引用不完整的类类型 - C++
- 类型为 "Bucket&"(未限定的 const 限定)的引用不能使用 "SortedList." 类型的值进行初始化 如何修复此错误?
- GDB 断点在 Mac 上是不准确的
- 为什么"std::uninitialized_copy"通常取消对未初始化内存的迭代器的引用不是未定
- cout 打印不准确的结果,printf 打印准确的结果
- 对"列表"的引用不明确,包括头文件
- 为什么引用不能与编译时函数一起使用?
- 对临时对象的Const引用不会延长其生存期
- C++中的 Json:将数字解析为字符串以避免浮点不准确
- 为什么OpenCV Templete匹配函数根本不准确
- 为什么要使用引用来获取 *char?当我们使用指针时,不使用引用不是更好吗?
- 控制台分辨率程序不准确
- 来自 cmath 库的 asin() 函数返回不准确的值
- 为什么作为返回类型的右值引用不能初始化非常量引用?
- C++字符串引用不能共存
- Constexpr 类采用常量引用不编译
- 为什么对数组的常量左值引用不编译在下面?
- *argv[]的取消引用值不准确