gpt4 book ai didi

c - 在 C 中使用 system()、fgets 和 sprintf 将文本附加到文件时出现问题

转载 作者:可可西里 更新时间:2023-11-01 10:31:48 24 4
gpt4 key购买 nike

“Head First C”一书中的以下代码显然应该可以工作,但(在 Windows 10 上)我只是打印出 comment 的内容,前面有 `,并且没有文件被编辑。

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

char* now()
{
time_t t;
time (&t);
return asctime(localtime (&t));
}

int main()
{
char comment[80];
char cmd[120];
fgets(comment, 80, stdin);
sprintf(cmd, "echo '%s %s' >> reports.log", comment, now());
system(cmd);
return 0;
}

最佳答案

这本书显然是为类 Unix 系统编写的。 Windows cmd 不使用单引号,所以如下代码:

sprintf(cmd, "echo '%s %s' >> reports.log", comment, now());

应该改为使用双引号,如下所示:

sprintf(cmd, "echo \"%s %s\" >> reports.log", comment, now());

关于c - 在 C 中使用 system()、fgets 和 sprintf 将文本附加到文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54065911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com