如何将包含空格字符的命令行参数传递给我的 C++ 程序?

问题描述

我们可以通过 C++ 中的 argv 代码访问命令行参数,我知道。

但问题是,如果一个参数包含空格,那么我的程序就像有两个参数一样工作。

例如,如果参数是 foo bar,我的程序会看到两个参数(foobar)。

这是我的代码

string strParameter = string(argv[1]);

那我该怎么办?

解决方法

这是由你的 shell 决定的,而不是你的程序。在大多数 shell 中,您可以通过将参数括在单引号和/或双引号中来解决此问题:

  • "foo bar"
  • 'foo bar'

或者在空格前加一个特殊符号:

  • foo\ bar
  • foo^ bar 在 CMD 中(在 Windows 上)
,

好的,我自己解决了我的问题。

这是我的解决方案:

sentence = ""

while True: 
    word = input("Please enter your word:")
    if word == "finish":
        break
    if [word] == sentence.split(' ')[:-1]:
        break
    sentence += word + " "
    
print(sentence)