gpt4 book ai didi

C: fgets 总是 NULL

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

我正在用 C 语言玩文件 I/O。我正在尝试使用 fgets 从一个文件中读取数据并将其输出到另一个文件。问题是它总是返回 NULL,因此没有任何内容被复制到输出文件中。这是我的代码:

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

int main()
{
FILE *fpIn;
FILE *fpOut;

if ((fpIn = fopen("C:\\testIn.txt", "r") == NULL))
{
printf("Cannot open input file!\n");
exit(1);
}

if ((fpOut = fopen("C:\\testOut.txt", "a") == NULL))
{
printf("Cannot open output file!\n");
exit(1);
}

char buffer[128];
while (fgets(buffer, 128, fpIn) != NULL)
{
fputs(buffer, fpOut);
}

fclose(fpIn);
fclose(fpOut);

system("PAUSE");
return 0;
}

另一件事;当我尝试在 fopen 的第二个参数中使用“a+f”时,它不起作用。

最佳答案

if ((fpOut = fopen("C:\\testOut.txt", "a") == NULL))

应该是

if ((fpOut = fopen("C:\\testOut.txt", "a")) == NULL)

与输入文件相同。如果您是 C 语言的新手,我建议您一次只做一件事,这样更容易找到问题所在。例如

fpOut = fopen("C:\\testOut.txt", "a");
if(fpOut == NULL) {
...

关于C: fgets 总是 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11533297/

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