SImple C程序打开文件

时间:2011-02-16 03:10:18

标签: c fopen

我正在尝试创建一个程序来打开一个名为“write.txt”的文件。

#include <stdio.h>

main() {
    FILE *fp;
    fp = fopen("write.txt", "w");
    return 0;
 }

这应该有用吗?因为它什么都不返回。

4 个答案:

答案 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指针执行任何操作,除非导致创建新文件...