我正在尝试创建一个程序来打开一个名为“write.txt”的文件。
#include <stdio.h>
main() {
FILE *fp;
fp = fopen("write.txt", "w");
return 0;
}
这应该有用吗?因为它什么都不返回。
答案 0 :(得分:13)
除了main
的旧版本之外,该代码并不存在太多错误。除非出现错误,否则应该创建文件。
但是,由于您没有检查fopen
的返回值,因此可能会出现某种错误而不知道错误。
我从:
开始#include <stdio.h>
#include <errno.h>
int main (void) {
FILE *fp;
fp = fopen ("write.txt","w");
if (fp == NULL) {
printf ("File not created okay, errno = %d\n", errno);
return 1;
}
//fprintf (fp, "Hello, there.\n"); // if you want something in the file.
fclose (fp);
printf ("File created okay\n");
return 0;
}
如果你坚持认为文件没有被创建但是上面的代码说明了,那么你可能是可怕的“IDE工作在与你认为不同的目录”的受害者:-)
某些IDE(例如Visual Studio)实际上会在您的代码位于<solution-name>\bin
或<solution-name>\debug
之类的目录中运行。您可以通过以下方式找到:
system ("cd"); // for Windows
system ("pwd") // for UNIXy systems
到你的代码中查看它的运行位置。 那是,如果指定相对路径行"write.txt"
,将创建一个文件。否则,您可以指定绝对路径以确保它尝试在文件系统中的特定点创建它。
答案 1 :(得分:2)
你期望它'返回'是什么 - 它打开一个文件,在大多数平台上创建一个文件,如果它不存在。
你最后应该把文件fclose(fp)。
答案 2 :(得分:2)
我认为您要打印文件write.txt的内容。 (假设它包含字符)。
#include <stdio.h>
int main()
{
FILE *fp,char ch;
fp=fopen("write.txt","r");
if(fp==NULL)
{
printf("Some problem in opening the file");
exit(0);
}
else
{
while((ch=fgetc(fp))!=EOF)
{
printf("%c",ch);
}
}
fclose(fp);
return 0;
}
答案 3 :(得分:0)
我认为在开始尝试使用文件之前,您应该在C中学习更多基础知识。返回意味着一些数据从被调用函数传递回调用代码。在这种情况下,在程序结束时返回0。您没有对FILE指针执行任何操作,除非导致创建新文件...