“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());