我正在使用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;
}
Run Code Online (Sandbox Code Playgroud)
另一件事; 当我尝试在第二个arg中使用"a + f"进行fopen时,它没有用.
if ((fpOut = fopen("C:\\testOut.txt", "a") == NULL))
Run Code Online (Sandbox Code Playgroud)
应该
if ((fpOut = fopen("C:\\testOut.txt", "a")) == NULL)
Run Code Online (Sandbox Code Playgroud)
输入文件上相同.如果您是C新手,我建议您一次做一件事,以便更容易追踪问题.例如
fpOut = fopen("C:\\testOut.txt", "a");
if(fpOut == NULL) {
...
Run Code Online (Sandbox Code Playgroud)