将随机文本附加到文件(C)

时间:2015-10-27 03:00:12

标签: c random

我试图在目录中创建一个文件,然后在文件中附加一些随机文本。

我的代码

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?

任何帮助都将受到高度赞赏。感谢

2 个答案:

答案 0 :(得分:3)

我认为rand()正在创建问题。使用rand()%4代替。 并且在放置随机字之前使用fclose()关闭文件。最后使用它。

答案 1 :(得分:3)

打开文件后,您将关闭该文件。关闭文件后,您无法将文本输入该文件。

FILE *filedir1 = fopen(path1, "a+"); 
fclose(filedir1); 

你的问题出在这个fclose行。完成该文件中的写入操作后,必须执行此操作。

因此,删除fclose(filedir1)并在写入文件后放入此行。