小编Ser*_*ket的帖子

为什么 C++ 中的字符串文字 (char*) 必须是常量?

我最近一直在学习 C++ 并意识到 C++ 中的字符串文字必须是常量,而在 C 中,它们不是。这是一个例子。以下代码在 C 中有效,但在 C++ 中无效:

char* str = "Hello World";
Run Code Online (Sandbox Code Playgroud)

为了在 C++ 中做同样的事情,必须使用以下语句:

const char* str = "Hello World";
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么吗?

c c++ pointers string-literals

44
推荐指数
2
解决办法
3540
查看次数

Node.js:语法错误:不能在模块外使用导入语句

SyntaxError: Cannot use import statement outside a module尝试从另一个 javascript 文件导入时出现此错误。这是我第一次尝试这样的事情。主文件是main.js,模块文件是mod.js.

主要.js:

import * as myModule from "mod";
myModule.func();
Run Code Online (Sandbox Code Playgroud)

模块.js:

export function func(){
    console.log("Hello World");
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?谢谢

javascript import export node.js

35
推荐指数
3
解决办法
7万
查看次数

通过 Node.js 控制台获取用户输入

我刚刚开始使用 Node.js,我不知道如何获取用户输入。我正在寻找 python 函数input()或 C 函数的 JavaScript 对应版本gets。谢谢。

javascript node.js

13
推荐指数
3
解决办法
2万
查看次数

哈希表和 Python 字典有什么区别?

我开始学习 C 语言中的哈希表数据结构,并且我注意到(如果我理解正确的话)哈希表与 Python 字典非常相似。如果我不正确并且它们是两个完全不同的东西,有人可以向我解释哈希表是什么而不会太技术化吗?谢谢。

c python dictionary hashtable

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

Java:while 循环中的 For 循环不会运行,除非包含 println 语句

我正在尝试在无限 while 循环中运行 for 循环。当没有打印语句时,代码不会按预期运行,但是当有打印语句时,它运行良好。这是代码:

class Test implements Runnable{
  public static int varint = 0;
  public static void main(String args[]){
    Thread x = new Thread(new Test());
    int i;
    x.start();
    while(true){
      System.out.println("Hello World"); //If this isn't included, 
                                        //the exit statement isn't executed
      for(i=0;i<varint;i++){
        System.out.println("Exit");
        System.exit(0);
      }
    }
  }

  public void run(){
    try{
      Thread.sleep(5000);
    } catch(Exception e){
      System.out.println("Caught");
    }
    varint = 1;
  }
}
Run Code Online (Sandbox Code Playgroud)

这只是从更大的循环中提取的一个小例子。我怎样才能解决这个问题?

java multithreading loops

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

如果我在堆上声明一个类实例,它的所有成员也都会在堆上吗?

我想知道如果我在堆上声明一个类实例(新),即使它们是使用 new 关键字创建的\xe2\x80\x99t,它的成员也会在堆上吗?

\n

c++ memory object heap-memory stack-memory

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

(C) 当终止值为 [^\n] 时 scanf 不工作

我正在创建一个程序,您可以通过该程序执行终端命令。我想访问一个目录(使用 cd /Users/user/Desktop),但由于 scanf 在空格处终止,我被迫将终止值更改为[^\n]. 这时候错误就出现了。每当我输入命令时,它都会执行该命令,但是下次程序进入(无限)循环时,它不会停止执行 scanf 函数之前的行。当终止值为 时,这种情况不会发生%s。这是该程序的代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void execute(){
    char* command = (char *) malloc(15);
    char* output = (char *) malloc(4096);
    printf(">> ");
    scanf("%[^\n]", command);            //Here is the scanf function
    FILE* cmd = popen(command, "r");
    fread(output, sizeof(output), 32000, cmd);
    if (strlen(output) != 0){
        printf("\n%s\n", output);
    }
    free(output);
    pclose(cmd);
}

int main(){
    while (1){
        execute();
    }
}

Run Code Online (Sandbox Code Playgroud)

这是终止值为 时的输出[^\n]

>> ls

Applications
Desktop
Documents
//Here the rest …
Run Code Online (Sandbox Code Playgroud)

c scanf

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

C++ 中的类是命名空间吗?

C++ 中的类是命名空间吗?我问这个是因为下面的代码是有效的。有人可以解释为什么吗?

代码:

#include <iostream>

class MainClass{
public:
  enum Bool{False, True};

  MainClass(){
    std::cout << "MainClass constructor" << True << std::endl;
  }
  ~MainClass(){
    std::cout << "MainClass destructor" << std::endl;
  }
};

int main(){
  MainClass::Bool myvar = MainClass::False << std::endl; //Why is this line valid?
  std::cout << myvar;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++ enums namespaces class

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

为什么我要使用 NASM 而不是 GNU Assembler (GAS)?

当 GAS 支持多种架构而 NASM 只支持 x86 架构时,为什么我要在 GNU 汇编器 (GAS) 上使用 NASM?我知道存在句法差异,但这并没有让我太困扰。

assembly gnu gnu-assembler nasm

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

使docker容器只能从某个IP访问

现在,当我将 docker 容器端口绑定到我的计算机上的端口时,可以通过属于我的计算机的每个 IP 地址访问它。

我知道这一点是因为我尝试使用 Docker 主机的静态 LAN IP 地址通过另一台计算机连接到该端口。

我想限制该特定容器只能由我的 docker 主机(127.0.0.1 或 localhost)访问。当我将 Web 服务器的 IP 更改为 localhost 时,我的 docker 主机将无法访问它(可能是因为这使其位于容器本地,而不是主机)。

如何使 docker 容器成为主机本地的?

docker docker-compose docker-network

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