2015-08-04 2 views
3

Я просто создаю базовую программу обработки файлов. код заключается в следующем:Создание файла с использованием fopen()

#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

+0

Примечание: измените 'if (p == 0)' на 'if (p == NULL)' –

+0

'Это дает ошибку,' ... пожалуйста, покажите нам также ... –

+0

Это всегда хорошая идея в RTFM подробно: http://www.iso-9899.info/n1570.html#7.21.5.3 – alk

ответ

2

Согласно tutorial, fopen возвращает NULL при возникновении ошибки. Поэтому вы должны проверить, равен ли pNULL.

Также, в printf("Error",);, пропустите запятую после строки.

+0

Использование '0' для сравнения против не является приятным, но действительным. Причина, по которой файл не создается, отличается. – alk

+0

Да, вот почему я использовал ** должен **. – Tlacenka

+0

Итак, ваш ответ лучше всего подходит в качестве комментария, так как он не отвечает на вопрос. – alk

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. 

Если вы хотите добавить содержимое в существующий файл, вы можете использовать "а +" для открытый режим.

Reference for fopen (для более открытых режимов и дополнительная информация о FOPEN семейства функций)

0

Да, вы должны открыть файл в режиме записи. Что создает файл. Режим чтения предназначен только для чтения содержимого , иначе вы можете использовать «r +» для чтения и записи.

Смежные вопросы