gpt4 book ai didi

c - 在C中的linux中输出随机数到文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:52:38 26 4
gpt4 key购买 nike

我正在尝试使用循环多次迭代将数字(随机生成)写入文件。我有:

while (i++ < number) {
n = randno();
write(openFd, (char) n, sizeof(int));
}

代码编译并运行。我可以在屏幕上打印“n”,文件已打开(代码未显示),但当我尝试使用 gedit 打开文件时,文件中似乎没有任何数据。我想要一个具有一定长度的非常大的文件。我哪里错了?任何帮助表示赞赏。

顺便问一下,什么是真随机函数?谢谢。

最佳答案

write() 的原型(prototype)是:

ssize_t write(int fd, const void *buf, size_t count);

请注意,第二个 arg 是一个指针值,因此向那里传递一个随机数(这就是您所做的1)确实有点令人惊讶不是段错误。

无论如何,如果您想做的是将数字写成文本,您需要先将其放入字符串中:

int n = randno();
char buffer[16]; // Will hold any int value + `\0`
sprintf(buffer, "%d", n);

您现在可以使用 bufferwrite:

write(openFd, buffer, strlen(buffer));

1。 n 是一个整数;用 (char) 转换它只会截断它。也许您的意思是 (char*)&n,它可以写出数字,但是是二进制格式,而不是文本格式!我认为这不是您想要的,因为您正在 gedit 中检查文件。

关于c - 在C中的linux中输出随机数到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20978672/

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