使用system(),fgets和sprintf在C中将文本附加到文件的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用system(),fgets和sprintf在C中将文本附加到文件的问题相关的知识,希望对你有一定的参考价值。
“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());
以上是关于使用system(),fgets和sprintf在C中将文本附加到文件的问题的主要内容,如果未能解决你的问题,请参考以下文章