gpt4 book ai didi

c - 如何在 C 中实现 printf 的缓冲区管理

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:25 25 4
gpt4 key购买 nike

<分区>

我相信我的问题源于 printf 打印缓冲区,但我对 C 或缓冲区知之甚少,不知道如何处理这个问题。我编写了一个简单的程序,它根据输入的文件根据一些 if/else 语句打印一堆文本(字符/字符串)。如果我像这样从 Unix shell 调用它:

gcc -o myProgram myProgram.c
./myProgram fileName

它只会在第一次运行时正确打印出来。如果我重复这些步骤并再次运行该程序,它会在输出 printf 之间打印出一堆“bash”命令。有没有简单的方法来调试或修复此问题?我是 C 的新手,如果你不知道的话,我将它用作学校作业的一部分,所以我试图真正弄清楚并理解这个概念,这样我就可以将它应用回我的实际程序分配。

编辑:这是一个尝试演示我的问题的临时示例
注意:输入的文件只包含文本。

#include <stdio.h>
#include <stdlib.h>

struct S{
char word[30];
}s;

int main(int argc, char ** argv)
{
void print(struct S *s);
int i;
FILE *f = fopen(argv[1], "rb");
fseek(f, 0, SEEK_SET);
fread(&s, sizeof(s), 1, f);
print(&s);
fclose(f);
}

void print(struct S *s)
{
int i = 0;
printf("Word: ");
for(i = 0; i < 30; i++)
{
if(s->word[i] != '\0')
{
printf("%c", s->word[i]);
}
else
{
break;
}
}
printf("\n");
}

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