相关疑难解决方法(0)

main()是否在C++中重载?

main()存在2个有效版本C++:

int main()  // version 1
int main(int argc, char **argv)  // version 2
Run Code Online (Sandbox Code Playgroud)

但两种重载都不能同时共存.为什么不?(潜在用例:从终端运行程序时,如果没有传递参数,则调用第一个版本,否则第二个版本被调用.)

编译器是否执行特殊检查以允许每个二进制文件只有一个版本?

c++ program-entry-point overloading

67
推荐指数
5
解决办法
8030
查看次数

C/C++主函数的参数在哪里?

在C/C++中,main函数接收类型的参数char*.

int main(int argc, char* argv[]){
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

argv是一个数组char*,并指向字符串.这些字符串在哪里?它们是堆,堆栈还是其他地方?

c c++ parameters location program-entry-point

58
推荐指数
4
解决办法
2万
查看次数

我应该如何让用户输入我想要的信息?

我刚开始学习计算机科学。

我正在通过在哈佛在线教授的 CS50 学习。好吧,我正在解决这个问题,我需要在命令行中从用户那里获取密钥,然后是明文,然后将该文本转换为 ASCII 中的密钥数量以生成密文。

这是我到目前为止所得到的。

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <math.h>

int main(int argc, string argv[])
{
    if (argc != 2)
    {
        printf("Usage: ./caesar key\n");
    }

    {
        string plaintext = get_string("plaintext:  ");

        int key = atoi(argv[1]);
        int n = strlen(plaintext);
        char chr[n];

        printf("ciphertext: ");
        for (int i = 0; i < n; i++)
        {
            chr[i] = plaintext[i];
            if (isalpha(chr[i]))
            {
                if (isupper(chr[i]))
                {
                    chr[i] = (chr[i] - 65 + key) % 26 + 65;
                    printf("%c",chr[i]);    
                } …
Run Code Online (Sandbox Code Playgroud)

c caesar-cipher cs50

1
推荐指数
1
解决办法
116
查看次数