gpt4 book ai didi

c - For循环只执行一次

转载 作者:行者123 更新时间:2023-11-30 19:19:49 25 4
gpt4 key购买 nike

我正在尝试创建一个函数,通过直接写入标准输出流而不是使用 printf 来在控制台上打印字符串。但问题是for循环只执行一次。这是什么原因呢?

代码如下:

int print_string(const char *string, const int buffer_size)
{
int i = 0;
char curr = '\0';
for(i = 0; i < buffer_size; i++) {

printf("([%d] buffer_size: %d) ", i, buffer_size);
printf("%c\n", string[i]);

curr = ungetc(string[i], stdout);

if(curr != string[i]) {
fprintf(stderr, "Error while writing string to stdout.\n");
return -1;
}
}
return 0;

}

PS:printf 调用仅用于调试目的。

当我调用 print_string("test", 4); 时,我得到以下输出:([0] buffer_size: 4) t

谢谢。

最佳答案

我想写入 stdout 流,但我使用的是 ungetc() (用于输入流)。这导致了崩溃。为了解决这个问题,我使用 fwrite((string+i), sizeof(char), 1, stdout); 写入 stdout;

关于c - For循环只执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23696525/

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