Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Holodov
5 / 5 / 0
Регистрация: 01.10.2011
Сообщений: 46
#1

Как правильно объявить fopen - C++

26.11.2011, 23:55. Просмотров 1975. Ответов 6
Метки нет (Все метки)

Доброго времени суток. наткнулся на некоторого рода проблемку. Не могу объявить fopen..
Описываю так как на MSDN написано , а компилятор ругается , мол смотрите объявление fopen;

C++
1
2
3
4
5
6
7
8
9
10
11
int main() 
{
FILE * pFile;
  pFile = fopen ("myfile.txt","w");
  if (pFile!=NULL)
  {
    fputs ("fopen example",pFile);
    fclose (pFile);
}
return 0;
}

1>.cpp(28) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\microsoft visual studio 9.0\vc\include\stdio.h(237): см. объявление 'fopen'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2011, 23:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как правильно объявить fopen (C++):

Как правильно объявить структуру - C++
Всем доброго времени суток.Есть задача:Составить программу формирования данных об успеваемости студентов по дисциплине: фамилия И.О., 5...

Как правильно объявить вектор? - C++
Только начинаю постигать STL. Подскажите, как заполнить случайными числами 1..9 значения контейнеров vector и map. И как вектор...

Как правильно объявить vector в классе? - C++
как правильно объявить вектор? #include <vector> #include <algorithm> using namespace std; extern int map; ...

Как правильно объявить статический метод - C++
например class A { private: static void method(); // объявление }; // как правильно объявить реализацию?

Как правильно объявить массив объектов - C++
Как правильно объявить массив объектов: #include <cstdlib> #include <iostream> using namespace std; class orenda_kvartiri {...

Как правильно объявить массив байтов? - C++
Как правильно объявить массив байтов? Надо ли вручную выставлять ему размер после "GetBitmapBits"? Я делал так: extern...

6
Jupiter
Каратель
Эксперт С++
6556 / 3977 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
27.11.2011, 00:17 #2
Цитата Сообщение от Holodov Посмотреть сообщение
warning
это предупреждение, а не ошибка
для
Цитата Сообщение от Holodov Посмотреть сообщение
visual studio
это нормально, не обращайте внимание
1
LostCoast
82 / 82 / 5
Регистрация: 30.09.2011
Сообщений: 404
Записей в блоге: 6
27.11.2011, 00:18 #3
C++
1
2
3
4
5
ofstream of("test.txt");
   if (!of) return 1;
   for (int i = 0; i < strlen(text); i++)
       of << (char ) tolower(text[i]);
   of.close();
вот рабочий вариант, возможно ты забыл подключить библиотеку stdio. либо используй то что тебе пишет компилятор fopen_s
1
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
27.11.2011, 05:11 #4
Цитата Сообщение от Holodov Посмотреть сообщение
Не могу объявить fopen
это не объявление, это вызов функции
Цитата Сообщение от LostCoast Посмотреть сообщение
либо используй то что тебе пишет компилятор fopen_s
некроссплатформенно
1
Сыроежка
Заблокирован
27.11.2011, 05:19 #5
Holodov,
Очевидно, что это предупреждение было сделано компилятором MS VC++. MS VC++ предлагает свои альтернативные функции для стандартных функций. Ожнако, эти функции, как я отметил выше, не являются стандартными, поэтому если вы будете использовать функции, предлагаемые MS VC++, то ваш код будет непереносим. Поэтому я рекомендую игнорировать эти сообщения. Есть специальная манифестная константа, которая позволяет игнорировать эти сообщения. Вы должны использовать эту константу, чтобы MS VC++ не раздражал вас этим предупреждением. Не следует использовать нестандартные средства, которые имеют мето лишь в отдельно взятом компиляторе.
1
Holodov
5 / 5 / 0
Регистрация: 01.10.2011
Сообщений: 46
27.11.2011, 11:20  [ТС] #6
Всем спасибо.)
0
Nusha26
0 / 0 / 0
Регистрация: 08.01.2014
Сообщений: 26
24.01.2014, 13:05 #7
У меня аналогичная проблема....(((( Пытаюсь осуществить копирование файлов с использованием библиотек Си, но у меня ничего не выходит(((((( Вот код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "stdafx.h"
#include <stdio.h>  
#include <errno.h>  
#define BUF_SIZE 256 
 
int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}
int main (int argc, char *argv [])  
{ 
FILE *in_file, *out_file; char rec 
[BUF_SIZE]; size_t bytes_in, 
bytes_out; 
char *fname = "some_file.txt";
char *fname2 = "copy_file.txt";
if (argc != 3)  
{ 
printf ("Использование: Cрc file1 File2\n", fname); 
return 1;  
} 
in_file = fopen (fname, "rb");  
if (in_file == NULL)  
{ 
perror (fname ) ; 
return 2;  
} 
out_file = fopen (fname2, "wb");  
if (out_file == NULL)  
    { 
perror (fname2 ) ; 
return 3; 
} 
/* Обрабатываем входной файл по одной записи. */ 
 while ( (bytes_in = fread (rec, 1, BUF_SIZE, in_file) ) > 0)  
{  
bytes_out = fwrite (rec, 1, bytes_in, out_file) ;  
if (bytes_out != bytes_in)  
{ 
perror ("Неисправимая ошибка записи."); 
return 4; 
} 
} 
 fclose (in_file); 
 fclose (out_file); 
}
А вот, что мне выдает отладчик:
1>d:\documents\visual studio 2012\projects\cpc\cpc\cpc.cpp(25): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 11.0\vc\include\stdio.h(218): см. объявление "fopen"
1>
1>СБОЙ сборки.
1>
1>Затраченное время: 00:00:00.43
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Подскажите пожалуйста, что надо сделать??????? И не судите строго, Си пытаюсь изучать только неделю)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.01.2014, 13:05
Привет! Вот еще темы с ответами:

Как правильно объявить массив строк c++ - C++
Подскажите пожалуйста, как реализовать: нужно корректно обьявить массив символов(неполучается) (точнее массив строк), который прога будет...

Как правильно объявить структуру в файле (модуле)? - C++
Возникла проблема такая проблема в файле Queue.h объявлена структура и указатели на нее #pragma once #ifndef QUEUE_H #define...

Как правильно объявить два счётчика в цикле for? - C++
Добрый день. Подскажите, пожалуйста. У меня почему-то не работает следующая конструкци цикла: for(int i=0 , int j=0 ; i&lt;10 ,...

как объявить правильно tr и как его использовать при вызове функции? - C++
main.cpp case 8: cout &lt;&lt; &quot;Firs trapec # is: &quot;; cin &gt;&gt; k; k = k - 1; cout &lt;&lt; &quot;Second trapec # is: &quot;; cin &gt;&gt; j;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
24.01.2014, 13:05
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru