我正在编写一个程序,它接受命令行参数并使用自定义比较器按字母数字排序的顺序打印它们。
一路上,我陷入了在std::set容器中插入命令行参数的困境。网上查了一些类似的代码,发现如下:
std::set<char*, decltype(customComparator)> args (argv, argv+argc, customComparator)
Run Code Online (Sandbox Code Playgroud)
这个argv + argc论点是什么意思/做什么?
当我尝试插入 cmd 参数时,例如:
std::set<char*, decltype(customComparator)> args (argv, customComparator)
Run Code Online (Sandbox Code Playgroud)
参数上有一条红色的波浪线argv。
我目前正在尝试掌握可以从sys或系统特定参数导入的argv函数(如果可以称为函数)的确切名称。我找到了3个定义:
那么是哪一个呢?也许如何称呼它并不重要?它甚至有一个公认的名字吗?
感谢大家!
如果我有这个:
int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)
在身体中,您有时可以找到使用的程序argv[1].
我们什么时候argv[1]用完argv[0]?是否仅在我们想要在命令行中读取第二个参数时?
int main (int ac, char **av)
{
/* functions*/
}
Run Code Online (Sandbox Code Playgroud)
这里的ac和av是什么意思?
我想建立一个考勤系统,它将系统日期和时间作为文件的文件名,例如:这是通常的情况.
int main () {
time_t t = time(0); // get time now
struct tm * now = localtime( & t );
cout << (now->tm_year + 1900) << '-'
<< (now->tm_mon + 1) << '-'
<< now->tm_mday
<< endl;
ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.\n";
myfile.close();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但我希望系统日期和时间代替example.txt我通过在上面的程序中包含ctime头文件来计算时间只是示例.
我最近学习了C语言.我读到有一些方法可以创建一个字符串数组.有什么区别char argv[][7]和char *argv[]?如果没有你更喜欢使用的是什么?
我是C++的初学者,我习惯用int main()编写代码,现在我正在使用:
int main(int argc, char **argv)
我不知道这行代码到底意味着什么.所以,我在网上查找了一些答案,我发现了这段代码:
std::cout << "Have " << argc << " arguments:" << std::endl;
for (int i = 0; i < argc; ++i) {
std::cout << argv[i] << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
这向我展示了我的论点.
我运行应用程序,控制台显示:
有1个参数:
C:\ Users\user\Documents\C++ Projects\Test\bin\Debug\Test.exe
然后它关闭了应用程序,因为在这个循环之后我有一个基于argc值的if else语句.
因此,如果argc与3不同则运行a exit(0).
我的问题是:
为什么我的论点只是我自己的应用程序位于调试路径上?
我怎样才能获得多个论点?
对不起,如果这似乎是一个基本问题.我一直在学习中期即将到来,我似乎无法绕过这个.我知道argv当你需要发送参数时,可以在命令行中使用它,但是我的教授给我们的答案似乎都没有意义.
argv函数中的参数main(int argc, char *argv[])是:
A.字符数组
B.字符串
C.指向字符
D 的指针数组.字符指针
E.以上都不是
我觉得它不属于上述情况,但可能是因为我不完全理解它的概念argv.任何帮助,将不胜感激!
为什么打印我的值为1,有人可以解释一下吗?
#include<stdio.h>
int main(i)
{
printf("i = %d\n", i);
}
Run Code Online (Sandbox Code Playgroud)
输出i = 1。
我知道要在C中使用命令行参数,你可以这样做:
int main(int argc, char **argv)
{
//use argc and argv
}
Run Code Online (Sandbox Code Playgroud)
今天,我在想这件事,我意识到我从来没有看到他们所谓的argc和argv.要求他们被称为这个或仅仅是惯例吗?如果需要,为什么会这样呢?
我可以这样做:
int main(int length, char**myinput){
//use length as you would argc and myinput
// as you would argv
}
Run Code Online (Sandbox Code Playgroud)
我还没有机会写一个程序来测试它.