我正在尝试在我的服务器上创建一个简单的脚本,基本上我想发送一个字符串并通过系统函数显示它...
#include <stdio.h>
int main()
{
char txt[100];
printf("Insert a text: ");
fgets(txt, 100, stdin);
system("echo %s"), txt;
return 0;
}
现在我没有得到任何字符串 "%s"
知道为什么吗?
最佳答案
system("echo %s"), txt;
这不是按照您的想法行事;它是一个计算结果为 txt
的表达式。由于评估 txt
没有副作用,并且由于您没有在任何地方捕获表达式的结果,因此在 system
调用之后添加 , txt
基本上什么都不做。参见 this question有关 C 中“逗号”运算符的一些信息。
此外,system
不支持使用 printf
样式的格式说明符,因此字符串文字中的 %s
不支持'没有任何特殊意义;正如您所见,它将完全按照所写内容进行回显。如果您想在运行时构造一个命令以用于 system
,则必须使用 sprintf
或类似的命令。
关于c - C中的基本脚本(字符串显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30105448/