Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Использование файла созданного предыдущей функцией

281
31 октября 2006 года
Fan][
279 / / 19.12.2003
В пределах отдной main() одна функция создаёт файл с какими-то данными, а следующая за ней функция должна использовать данные, находящиеся в файле созданном предыдущей функцией.
Но файл создаётся только после выхода из main(). Т.е. вторая функция остаётся без работы.
Как так получается?
3.0K
31 октября 2006 года
Мerlin
267 / / 25.07.2006
При создании файл открывается для записи.
Перед вызовом функ2, закрыть файл и открыть для чтения.
281
31 октября 2006 года
Fan][
279 / / 19.12.2003
Мerlin

Перед окончанием своей работы первая функция закрывает файл (outfile.close()).
3.0K
31 октября 2006 года
Мerlin
267 / / 25.07.2006
[QUOTE='Fan][']Мerlin
Перед окончанием своей работы первая функция закрывает файл (outfile.close()).[/QUOTE]Может тогда flush() поможет? Хотя все равно странно.
281
31 октября 2006 года
Fan][
279 / / 19.12.2003
Мerlin

Не помогло.

На всякий случай - так вторая функция пытается прочесть файл:
Код:
ifstream infile("s.txt");

    infile.open("s.txt");
    char buffer[256];
    *buffer = 0;
    int count=0;

    while(!infile.eof())
    {
        infile.getline(buffer, sizeof(buffer));
        if(*buffer)
        {
            count++;
        }
        else
        {
            cout<<"file not found!"<<endl;
            break;
        }
    }
3.0K
31 октября 2006 года
Мerlin
267 / / 25.07.2006
Открыт ли файл, можно проверить кодом
 
Код:
if(!infile.is_open())
{
  cout << "Файл не открыт" << endl;
  return;
}
А то если файл начинается с пустой строки, то будет получено, что он не открыт.
3
31 октября 2006 года
Green
4.8K / / 20.01.2000
На всякий случай - так вторая функция пытается прочесть файл:
 
Код:
infile.open("s.txt");

Зачем?!
 
Код:
char buffer[256];
    *buffer = 0;
    .....
    infile.getline(buffer, sizeof(buffer));

Зачем?!
 
Код:
if(*buffer)
        {
            count++;
        }
        else
        {
            cout<<"file not found!"<<endl;
            break;
        }

Зачем?!

Сделай так:
Код:
ifstream infile("s.txt");
    if( !infile.is_open() )
    {
        cerr << "ERROR: can't open file" << endl;
        return err_code;
    }

    int count = 0;
    while( !infile.eof() )
    {
        string str;
        getline(infile, str);
        count++;
    }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог