C++ 是否可以将带有换行符的文本传递给 C++ 程序?

C++ Is it possible to pass text with line breaks to a C++ program?

我正在使用 system() 函数通过 PHP 调用 C++ 程序:

$use = '"' . $_POST['source'] . '"';
system("Subject " . $use);

其中 $use 存储一些可能包含换行符的文本,并使用 $_POST 变量将其自身传递给 PHP 程序。如果我将这个变量传递给 C++ 程序并且包含的​​文本有换行符,那么只有第一行会传递给程序。我试图通过使用两个引号来避免这种情况,但这不起作用。因此,如果输入例如

word 1  
word 2

然后只有单词 1 被传递给 C++ 程序。相反,如果输入的形式为

word 1 word 2

当然一切正常。

如果有解决方案,我该如何解决?

据我了解,您只需将换行符替换为空格即可:

$use= str_replace ("\n", " ", $use);

您需要为命令行转义$use

system("Subject " . escapeshellarg($use))