我试图在目录中创建一个文件,然后在文件中附加一些随机文本。
我的代码
char dirname[30];
sprintf(dirname, "myroom.%d", (int)getpid());
mkdir(dirname,0777);
char path[path_max+1];
snprintf(path1, PATH_MAX+1, "%s/file1.txt,dirname);
FILE *filedir1 = fopen(path1, "a+");
fclose(filedir1);
char *random_name = { "burger", "toast", "burrito", "noodles" };
int number = rand();
fputs(random_name[number], filedir1];
我想要什么
(内部目录" dirname" )
当我打开file1.txt时,我预计第一行会有burrito,burger,toast或noodles这两个词。
我得到了什么
file1.txt仍为空。
问题
有人知道我的代码会发生什么吗?我从youtube视频中看到,要将一些文本附加到文件中,我需要的只是fputs命令,但它似乎不能在我的代码中工作。是因为我使用" a +"在fopen?
任何帮助都将受到高度赞赏。感谢
答案 0 :(得分:3)
我认为rand()正在创建问题。使用rand()%4代替。 并且在放置随机字之前使用fclose()关闭文件。最后使用它。
答案 1 :(得分:3)
打开文件后,您将关闭该文件。关闭文件后,您无法将文本输入该文件。
FILE *filedir1 = fopen(path1, "a+");
fclose(filedir1);
你的问题出在这个fclose行。完成该文件中的写入操作后,必须执行此操作。
因此,删除fclose(filedir1)并在写入文件后放入此行。