gpt4 book ai didi

c - 使用多个 fprintf 语句将多行写入文件与 con-cat 多行然后使用一个 fprintf 语句写入文件?

转载 作者:行者123 更新时间:2023-12-04 09:37:29 29 4
gpt4 key购买 nike

我的应用程序(用 C 语言编写)必须将 500 个字符串出队并将它们写入文本文件。我可以将每个字符串出列并使用单独的 fprintf 语句将每个字符串写入一个文件,或者我可以将所有出列的字符串连接成一个字符串,然后将该长连接字符串写入一个文件中fprintf 语句。哪种方法更好?

方法一:

i = 0;
while (i < 500)
{
memset(cdr_info, 0, sizeof(cdr_info));
de_cdrQueue(cdr_info);
fprintf(fp, "%s\n", cdr_info);
i++;
}

方法二:

char cdr[10000];
i = 0;
while (i < 500)
{
memset(cdr_info, 0, sizeof(cdr_info));
de_cdrQueue(cdr_info);
strcat(cdr,"\n");
strcat(cdr, cdr_info);
i++;
}
fprintf(fp, "%s\n", cdr_info);

最佳答案

stdio 流的一个特性,尤其是当连接到文件时,是它们缓冲输入和输出,然后将其写入大块。因此,除非您干扰了 fp 的缓冲,否则您会自动从方法 1 获得类似于方法 2 的 I/O 行为。

此外,您可以通过setvbuf() 控制缓冲区的大小。 ,所以如果你想要一个 10000 字节的缓冲区,那么你可以确保,允许具有 I/O 语义的方法 1 解决方案与你的方法 2 更相似。除非你想要连接的字符串不仅仅是打印它,否则有很多当方法 1 可行时,没有理由更喜欢方法 2。

关于c - 使用多个 fprintf 语句将多行写入文件与 con-cat 多行然后使用一个 fprintf 语句写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58540937/

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