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

ofstream - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
31.07.2011, 23:51     ofstream #1
Линковка, компиляция без ошибок. При выполнении программы срабатывает условие, почему так? Если лепить файл с программой в директории, то все работает, а так нет.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
 
bool DIGIT(int tmp);
 
int main()
{
     const char *filename = "/home/chertopolox/projects/temp";
     std::ofstream ofs(filename);
     if (!ofs.is_open()){
        std::cerr << "Error open file";
        return 1;
     }
     //for (int j=0; j<4096; ++j){
      //  if (DIGIT(j))  << ", " << j;
    //}
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.07.2011, 23:51     ofstream
Посмотрите здесь:

ofstream C++
ofstream C++
C++ C++ файлы ifstream/ofstream
ifstream ofstream C++
C++ Передача ofstream в функцию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
31.07.2011, 23:55     ofstream #2
Цитата Сообщение от alkagolik Посмотреть сообщение
/home/chertopolox/projects/temp
это кто?

Добавлено через 25 секунд
Цитата Сообщение от alkagolik Посмотреть сообщение
лепить файл
что это означает?
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
01.08.2011, 00:28  [ТС]     ofstream #3
/home/chertopolox/projects/temp

Это текстовый файл в который должен записываться поток

Лепить файл, означает создать файл в одной директории с бинарником. Прошу прощения за неясности.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
01.08.2011, 00:40     ofstream #4
Цитата Сообщение от alkagolik Посмотреть сообщение
std::ofstream ofs(filename);
после этой строки добавь:
C++
1
std::cout << "error: " << strerror(errno) << std::endl;
а то я не уверен что мы понимаем друг-друга...
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
01.08.2011, 01:02  [ТС]     ofstream #5
Что-то я не догоняю. Я пишу в codeBlocks, обновил ядро, наверное надо гуй снова поставить. сейчас подключил errno.h
Ответ: undeclared strerror
Сейчас перезагружусь, поставлю гуй снова посмотрю.

Добавлено через 8 минут
ошибка линковки
error: ‘strerror’ was not declared in this scope|
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
01.08.2011, 01:03     ofstream #6
#include <string.h>
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
01.08.2011, 01:07  [ТС]     ofstream #7
Error: No such file or directory
Ну да, потерял директорию по пути. Извиняюсь за бескпокойство.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
01.08.2011, 01:16     ofstream #8
Цитата Сообщение от alkagolik Посмотреть сообщение
Error: No such file or directory
какая ОС? какой компилятор?

Добавлено через 23 секунды
Цитата Сообщение от alkagolik Посмотреть сообщение
потерял директорию по пути.
собственно, так и ожидалось
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
01.08.2011, 01:24  [ТС]     ofstream #9
ubuntu, gcc 4.5
вся соль в том что путь пересмотрел стопицот раз, а так и не заметил.
niXman
Эксперт C++
 Аватар для niXman
3133 / 1445 / 49
Регистрация: 09.08.2009
Сообщений: 3,441
Записей в блоге: 2
01.08.2011, 01:26     ofstream #10
Цитата Сообщение от alkagolik Посмотреть сообщение
а так и не заметил
обычная ситуация. по этому привыкай использовать подобный прием
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
01.08.2011, 01:47  [ТС]     ofstream #11
по этому привыкай использовать подобный прием
Да как бэ привыкаем и так потихоньку. Загвоздка в том что изначально сел в с++, теперь смотрю что в никс без Си никак. Еще вопрос, но уже по другой теме. у меня gdb 7.2 не поддерживает pthreads, я где-то читал что он вообще с потоками не очень дружит, на что переориентироваться лучше?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.08.2011, 13:05     ofstream
Еще ссылки по теме:

Ofstream and ostream C++
Перегрузка ifstream и ofstream? C++
Ofstream перегрузить оператор << C++

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.08.2011, 13:05     ofstream #12
Цитата Сообщение от alkagolik Посмотреть сообщение
Загвоздка в том что изначально сел в с++, теперь смотрю что в никс без Си никак.
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
#include <iostream>
#include <boost/filesystem.hpp>
int main(){
    namespace fs = boost::filesystem;
    std::cout << "Enter path of file\n";
    fs::path file;
    std::cin >> file;
    try
    {
        if (!fs::exists(file))
        {
            std::cerr << "File not found!\n";
            return 1;
        }
        if (fs::is_directory(file))
        {
            std::cerr << "It's directory!\n";
            return 1;
        }
        else if (!fs::is_regular_file(file))
        {
            std::cerr << "It's not file!\n";
            return 1;
        }
        else
        {
            std::cout << "Size of \"" << file.filename() << "\" is "
                          << fs::file_size(file)
                          << " bytes\n";
        }
    }
    //если лень писать if'ы
        catch(const fs::filesystem_error& ex)
    {
        std::cerr << ex.what() << std::endl;
        return 1;
    }
    return 0;
}
Yandex
Объявления
01.08.2011, 13:05     ofstream
Ответ Создать тему
Опции темы

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