使用fopen()创建文件

时间:2015-08-04 14:02:00

标签: c file-handling dev-c++ null-pointer

我只是在创建一个基本的文件处理程序。 代码是这样的:

#include <stdio.h>
int main()
{
FILE *p;
p=fopen("D:\\TENLINES.TXT","r");
if(p==0)
{
    printf("Error",);

}

fclose(p);
}

这是错误,我无法创建文件尝试重新安装编译器并使用不同的位置和名称的文件,但没有成功。 我使用的是Windows 7,编译器是Dev C ++版本5

4 个答案:

答案 0 :(得分:7)

更改打开模式
p=fopen("D:\\TENLINES.TXT","r");//this will not _create_ a file
if(p==0)

对此:

p=fopen("D:\\TENLINES.TXT","w");//this will create a file for writing.
if(p==NULL)                     //If the file already exists, it will write over
                                //existing data.

如果您想内容添加到现有文件,则可以使用“a +”作为开放模式。

Reference for fopen (有关更多开放模式,以及有关fopen系列函数的其他信息)

答案 1 :(得分:2)

根据tutorialfopen在发生错误时返回NULL。因此,您应该检查p是否等于NULL

此外,在printf("Error",);中,省略字符串后的逗号。

答案 2 :(得分:0)

是的,您应该以写入模式打开文件。 这会创建文件。读取模式仅用于读取内容 或者你可以使用&#34; r +&#34;用于读写。

答案 3 :(得分:0)

fopen() 语法:

FILE *fp;
fp=fopen(“data.txt”,”r”);
if(fp!=NULL){
//file operations 
}

有必要大写FILE。函数fopen()将打开一个文件“ data.txt” 在读取模式下。 fopen()执行以下重要任务。

  1. 它将在磁盘上搜索以打开文件。

  2. 如果文件存在,它将文件从磁盘加载到内存中。如果发现文件内容很大,则会逐份加载文件。

  3. 如果文件不存在,则此函数返回NULL。 NULL是头文件“ stdio.h”中的宏定义字符。这表明它无法打开文件。 fopen()函数失败可能有以下原因。 文件处于保护或隐藏模式时。 b。该文件可能被另一个程序使用。

  4. 它找到一个字符指针,该指针指向第一个字符 文件的搜寻者。每当有文件 打开字符指针指向文件的第一个字符