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

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

Войти
Регистрация
Восстановить пароль
 
DruidCat
4 / 4 / 1
Регистрация: 15.12.2012
Сообщений: 31
#1

fstream не создается файл (Ecipse + MinGW) - C++

28.12.2012, 17:10. Просмотров 536. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста, у меня не создается текстовый файл. Я начал изучать С++ недавно. Пользуюсь Ecipse + MinGW.
Вот мой исходник
cWrite.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef CWRITE_H_
#define CWRITE_H_
 
class cWrite
{
public:
    cWrite(void) {};
    ~cWrite(void) {};
    void dcwrite (char *argV[], int i, int argC);
    char* dctime(void);
};
 
#endif /* CWRITE_H_ */
cWrite.cpp
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
#include "cWrite.h"
#include <iostream>
#include <fstream>//ofstream _(_,_)
#include <sstream>//ostringstream
#include <time.h>//dctime()
 
using namespace std;
 
void cWrite::dcwrite (char *argV[], int i, int argC)//*argV[] - массив строк, i - № слова,  argC - количество слов в массиве
{
    string name ("Заметки");
    ostringstream filename;
    filename << name << ".txt";//Формируем название файла
    ofstream outfile(filename.str().c_str(), ios::app);//место расположения создаваемого файла
 
    if ( ! outfile.is_open() )//Проверка, если файл не открыт...
        cout << endl <<"Всё плохо!" << endl;
    else//или
        cout << endl << "Всё хорошо!" << endl;
 
    outfile << dctime();//Записываем в файл время и дату из функции dctime()
    for (int a = i; a < argC; a++)//Цикл колличества слов которые необходимо записать
        outfile << " " << *(argV + a);//Запись слов в файл через пробел
    outfile << endl;//Конец строки
    outfile.close();//Конец записи в файл
    cout << endl << "Данные записанны в файл: " << filename.str().c_str() << endl;//Информация в консоль
}
 
 
char* cWrite::dctime(void)
{
    time_t tTime;//Устанавливаем переменную tTime
    tTime = time(NULL);//Присваеваем переменной tTime системное время и дату
    return (ctime(&tTime));//возвращаем строчку с данными времени и даты
}
Непонятно то, что если я эту программу пишу в main(), то файл создается, а если код в классе, то не создается файл. Я даже проверку сделал (строки 16 - 19), программа говорит, что создается файл. Может он создается где нибуть хрен знает где? И еще, если я например в строке 14 пишу так:
Код
ofstream outfile("c://Заметки.txt", ios::app);
То файл создается в указанном месте, а мне нужно, чтоб он создавался с файлом программы в одном месте. Может здесь есть специфика MinGW?
Помогите новичку.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 17:10     fstream не создается файл (Ecipse + MinGW)
Посмотрите здесь:

C++ Некоректный вывод в файл (использовал fstream)
Не выводится информация в файл через fstream C++
fstream удалить/создать файл C++
C++ Запись в файл fstream
Не могу открыть файл fstream C++
fstream (удалить файл каким то методом и переименовать) C++
fstream не записывает данные в файл C++
C++ Fstream не видит файл
C++ Не перезаписывается файл. Работа с fstream
C++ Запись в файл fstream
C++ Информация не сохраняется файл через fstream
Fstream не видит файл C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cybersonner
97 / 48 / 3
Регистрация: 24.12.2011
Сообщений: 101
28.12.2012, 22:48     fstream не создается файл (Ecipse + MinGW) #2
специвльно пришлось перепроверить на чем было: связка кодеблокс+мингв.
итак.
1. при запуске из кодеблокса( среды разработки) программа считает текущей папкой папку проекта( там где main.cpp лежит или другой главный файл). и файлик твой создается именно там.
2. сама программа лежит в подпапке bin/release или bin/debug. если руками запустить программу отттуда, то текущей считается эта папка и твой файлик создается в ней.
DruidCat
4 / 4 / 1
Регистрация: 15.12.2012
Сообщений: 31
29.12.2012, 00:32  [ТС]     fstream не создается файл (Ecipse + MinGW) #3
Облазил я свой компьютер и нашел этот файлик в c:\Users\DruidCat\ хотя сам проект находится c:\Users\DruidCat\Documents\Eclipse++\Write\Release\.
Запускаю эту программу через командную строку с прописанным PATH, видимо из-за этого файл появляется там, где появляется.
Спасибо за помощь!
Yandex
Объявления
29.12.2012, 00:32     fstream не создается файл (Ecipse + MinGW)
Ответ Создать тему
Опции темы

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