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

Открыть файл - C++

Восстановить пароль Регистрация
 
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
22.09.2013, 17:25     Открыть файл #1
Подскажите, как в функции открыть файл, и вернуть дeскриптоp.
C++
1
2
3
4
int openfile(*char filename) {
...
return дескриптор  
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
22.09.2013, 17:52     Открыть файл #2
Можно как то так сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using std::cout;
using std::endl;
#include <fstream>
using std::fstream;
 
fstream& f(char* s)
{
    fstream op;
    op.open(s,fstream::in|fstream::out);
    return op;
}
 
int main()
{
 
 
    return 0;
}
Добавлено через 2 минуты
Или как то так можно для stdio.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using std::cout;
using std::endl;
#include <fstream>
using std::fstream;
#include <cstdio>
 
FILE* f(char* s)
{
    FILE* p=fopen(s,"r");
    return p;
}
 
int main()
{
 
 
    return 0;
}
fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
22.09.2013, 17:54  [ТС]     Открыть файл #3
Цитата Сообщение от ninja2 Посмотреть сообщение
Можно как то так сделать:
В 11 строке Attempting to return a reference to local variable 'op'
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
22.09.2013, 17:56     Открыть файл #4
Там чуток ошибся нужно явно память выделить, а то при выходе из функции все удалиться. Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using std::cout;
using std::endl;
#include <fstream>
using std::fstream;
 
fstream& f(char* s)
{
    fstream* op=new fstream;
    op->open(s,fstream::in|fstream::out);
    return *op;
}
 
int main()
{
 
 
    return 0;
}
Добавлено через 1 минуту
fishec, Да говорю ошибся в попыхах набрал не проверил, нужно явно память выделить.
Yandex
Объявления
22.09.2013, 17:56     Открыть файл
Ответ Создать тему
Опции темы

Текущее время: 21:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru