gpt4 book ai didi

c - 为什么 fprintf() 不写入文件?

转载 作者:太空宇宙 更新时间:2023-11-04 00:57:26 24 4
gpt4 key购买 nike

我正在尝试使用以下代码将从控制台输入的一些文本写入名为“output.txt”的文件中。

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

int main()
{
printf("write something\n");
char c;

FILE *output=fopen("output.txt","w");

if(!output)
{
printf("couldn't open file\n");
return 1;
}

while(c=getchar())
fprintf(output,"%c",c);

fclose(output);

}

但当我打开“output.txt”文件时,它不包含任何文本。为什么会这样?非常感谢所有帮助。

最佳答案

由于循环中没有适当的退出条件,终止程序的唯一方法是强制结束进程。这意味着无法保证任何待处理的缓冲输出都将写入流 output

您可以将循环条件更改为 while((c = getchar()) != EOF)。然后,您可以使用字符 Ctrl+Z (Windows) 或 Ctrl+D (*nix)使循环条件为假,到达 fclose(output) 行,这将刷新缓冲区并关闭文件。

此外,将 c 设为 int,因为 EOF 就是这样。

关于c - 为什么 fprintf() 不写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54831487/

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