c - C中的基本脚本(字符串显示)

标签 c

我正在尝试在我的服务器上创建一个简单的脚本,基本上我想发送一个字符串并通过系统函数显示它...

    #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/

相关文章:

c - Emacs 中的 Linux 内核标记

c - 如何在没有继承的情况下模拟对象(在 C 中)?

c - SSH2 session 中计算量最大的步骤是什么?

c - 我不明白为什么我不能像这样在末尾添加节点

c - C语言中正确使用if/else语句的问题

c - 为什么 sscanf 需要 & %d 整数而不是 %s 字符串

c - 为什么第五个数据不能工作fscanf()有问题吗?

c++ - 在 C++ 中 reshape Matlab

c - 返回字符串的函数不工作 - 段错误

C. 打印出来的不对,目前还没搞清楚原因