Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > конвертирование типов


Автор: rthsobakas 6.3.2010, 15:23
пишут
Код

fopen("wew.txt","rt")

для открытия фаила.
Если я хочу сделать так:
Код

char FileName[100]={"wew.txt"};
fopen(FileName,"rt")


возникает ошибка
Код

error C2664: fopen: невозможно преобразовать параметр 1 из 'char' в 'const char *'
Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции


Дело в том что Filename Передается как аргумент.
Вот вызываю
Код

nArray(&FileName,&CountQuestions);


сама функция
Код

void nArray(char *FileNameArg,int *CountQuestionsArg){
    char FileName=*FileNameArg;
   ... fopen(FileName,"rt") ...
// тыры пыры
    *CountQuestionsArg=i;
}


Если так сделать
Код

fopen((const char *)FileName,"rb")

Возникает
Цитата

 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>        d:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(237): см. объявление 'fopen'

Автор: cutwater 6.3.2010, 16:01
Это всего лишь предупреждение.  Переведите его и поймете в чем дело.

Автор: rthsobakas 6.3.2010, 18:25
cutwater, неее... предупреждение  ладно. Я просто узнать хотел. Так как я делаю, то есть передаю параметр, использую его в fopen это правильно? 

Автор: 586 6.3.2010, 20:31
Цитата(rthsobakas @  6.3.2010,  15:23 Найти цитируемый пост)
char FileName[100]={"wew.txt"};

Фигурные скобки не нужны
Код
void nArray(char *FileNameArg,int *CountQuestionsArg)
{
   ... fopen(FileNameArg,"rt") ...

    *CountQuestionsArg=i;
}

//...

int CountQuestions;
char FileName[100]="wew.txt";
nArray(FileName,&CountQuestions);

Автор: PoloS 6.3.2010, 21:32
помоему при вызове функции в строчке
Код

nArray(&FileName,&CountQuestions);


у аргумента FileName не нужно &. 
Код

char  str[20]="blabla"; 
char *p2 = str; //- так работает.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)