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

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

Войти
Регистрация
Восстановить пароль
 
 
ruschelser
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 10
#1

Чтение/запись из/в файл .txt - C++

19.12.2013, 00:53. Просмотров 727. Ответов 18
Метки нет (Все метки)

Имеется файл названный stses формата txt, и вот его содержание:

3
Loyed 4
Greable 7
Otto 2


в методичке приведен пример проги, которая сначала извлекает данные из сего файла, а потом записывает в него на последнюю строчку: Yakov 1

вот код:

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 "stdafx.h"
#include "iostream"
#include "string.h"
#include "fstream"
#include "conio.h"
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    int n,*M,i;
    char **name,fam[30];
 
       fstream ff("stses.txt");
       ff>>n;
       name=new char*[n];
       M=new int[n];
 
                    for(i=0;i<n;i++)
                    {
                       ff>>fam>>M[i];
                       name[i]=_strdup(fam);
                    }
                    ff.close();
 
 
                                    
    ff.open("stses.txt",ios::app);
    ff<<"Gerber "<<5;
    ff.close();
 
    _getch();
    return 0;
}
}
Через мгновение после начала компиляции мне выдается ошибка (см. вложения)

самая простая прога, которая должна работать, так как она из методички и там все по кусочкам объясняется, но вот эта хрень происходит

Помогите пожалуйста в решении данной проблемы (у меня зачет в пятницу и надо писать наподобие этой((((()
0
Миниатюры
Чтение/запись из/в файл .txt  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 00:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение/запись из/в файл .txt (C++):

Запись в файл txt - C++
studBeg = GetStud(hDlg); out.open(&quot;output.txt&quot;, ios_base::app); out &lt;&lt; studBeg.fam &lt;&lt; studBeg.imia &lt;&lt;...

Запись данных в файл txt - C++
записываю через for(int i=0;i&lt;l;i++) f&lt;&lt;a.fio&lt;&lt;&quot; &quot;&lt;&lt;a.nomer&lt;&lt;&quot; &quot;&lt;&lt;a.inf&lt;&lt;&quot; &quot;&lt;&lt;a.inmov&lt;&lt;&quot; &quot;&lt;&lt;a.math&lt;&lt;&quot; &quot;&lt;&lt;a.fiz&lt;&lt;endl; Если...

Запись текста в файл txt - C++
Здравствуйте , подскажите как реализовать запись в файл, у меня что то не получается har name; puts(&quot;Введите термин:&quot;); ...

Зависает запись в txt - файл - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #include &lt;conio.h&gt; #include &lt;windows.h&gt; #include &lt;fstream&gt; #include...

Запись путей файлов в *.txt файл. - C++
Здравствуйте. Возник вопросик. С помощью чего можно организовать такое действие программы! Исполняемый файл программы ...

Запись в файл txt построчно из <list> - C++
# include &lt;iostream&gt; # include &lt;list&gt; # include &lt;string&gt; # include &lt;fstream&gt; # include &lt;cstdio&gt; using namespace std; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.12.2013, 01:27 #2
Открытие файла для чтения всегда проверять нужно (может в этом дело):
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
int n, *M, i;
    char **name, fam[30];
 
    fstream ff("stses.txt");
    if (!ff) cout << "Error!" << endl;
    else
    {
        ff >> n;
        name = new char*[n];
        M = new int[n];
 
        for(i = 0; i < n; i++)
        {
            ff >> fam >> M[i];
            name[i] = _strdup(fam);
        }
        ff.close();
 
        ff.open("stses.txt",ios::app);
        ff<<"Gerber "<<5;
        ff.close();
    }
    _getch();
    return 0;
У меня, этот код, ошибки не вызывает.
0
ruschelser
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 10
19.12.2013, 23:46  [ТС] #3
запускается консоль на которой вывелось error!
а что за ошибка понятия не имею
и объясните что за условие "!ff"
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
19.12.2013, 23:56 #4
Цитата Сообщение от ruschelser Посмотреть сообщение
запускается консоль на которой вывелось error!
а что за ошибка понятия не имею
и объясните что за условие "!ff"
Ошибка при открытии файла. Файл не находит. Файл для чтения должен существовать и находиться в папке проекта.
1
ruschelser
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 10
19.12.2013, 23:58  [ТС] #5
спасибо
попытаюсь понять в чем дело
нам сказали что файл может находиться в папке проекта, вот я его туда и кидаю
может ли быть это еще из-за того, что название в проге с указанием типа, а вот в папке с проектом с указанием что файл txt?
хотя я и с наванием и без пробовал - одна хрень
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.12.2013, 00:09 #6
Что бы не гадать. В самом начале кода пропишите:
C++
1
ofstream f2("test.txt");
И посмотрите, где появится этот файл и как будет выглядеть его имя в папке. Вот там должен быть и файл для чтения, и выглядеть (формат имени) точно так же. Бывает заморочка с именем файла и расширением. Может в ОС расширения файлов скрыты. Тогда нужно имя файла задавать без расширения, которое система сама добавит, иначе, если задать имя файла, как в коде, то реально получится файл с другим полным именем (в конце имени .txt.txt будет).
0
ruschelser
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 10
20.12.2013, 00:31  [ТС] #7
вот простейшая прога, а не работает - все одни и те же ошибки
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.12.2013, 00:38 #8
Цитата Сообщение от ruschelser Посмотреть сообщение
вот простейшая прога, а не работает - все одни и те же ошибки
Это ответ на 6 пост? Или что?
0
ruschelser
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 10
20.12.2013, 00:42  [ТС] #9
это печальный вывод из того что происходит сейчас в этом грёбаном visual(((
0
nomyac
2 / 9 / 1
Регистрация: 12.10.2013
Сообщений: 43
20.12.2013, 00:46 #10
Господи, да проблема только с выделением памяти. Я не стану кидать код т.к. считаю, что полезнее автору разобраться самому
C++
1
2
name = new char*[n];
        M = new int[n];
1
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.12.2013, 00:48 #11
Кроме печальных выводов, хотелось бы ещё узнать результат предложенных, в 6 посте, действий. Я время трачу на что?

Добавлено через 1 минуту
nomyac, вы посты читаете? Прочитайте третий. Код рабочий (проверено), и с памятью там всё нормально.
0
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
20.12.2013, 00:51 #12
ruschelser, это код в точности из вашей методички?
Если так, то сочувствую вам, сам учусь в подобном заведении. Сходу видно, что память не освобождается с помощью delete. Это раз.
Слышали или пытались найти что такое std::bad_alloc ? Значит невозможно выделить достаточно памяти или какая-то проблема с хипом. Это 2.
Пошагово пройдитесь по программе, определите место ошибки. Перехватите исключение и посмотрите, что выдаст std::Exception::what().
http://www.cplusplus.com/reference/n.../?kw=bad_alloc - вот пример.
1
ruschelser
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 10
20.12.2013, 00:53  [ТС] #13
найти не пытался, но возможно поможет - сейчас помозгую на этот счет
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.12.2013, 01:00 #14
gromo, с памятью там всё в порядке. Ещё раз: код рабочий, проверено. bad_alloc из-за того, что файл не открывается (3 пост читайте!), соответственно в n ничего не считывается, в n муссор, под размер этого муссора выделяется память.

Добавлено через 2 минуты
Цитата Сообщение от ruschelser Посмотреть сообщение
сейчас помозгую на этот счет
Насчёт 6-го поста помозговать не хотите? Конкретный ответ дайте. Надоело уже в пустоту писать...
0
gromo
370 / 269 / 24
Регистрация: 04.09.2009
Сообщений: 1,214
20.12.2013, 01:05 #15
Цитата Сообщение от alsav22 Посмотреть сообщение
с памятью там всё в порядке. Ещё раз: код рабочий, проверено. bad_alloc из-за того, что файл не открывается (3 пост читайте!), соответственно в n ничего не считывается, в n муссор, под размер этого муссора выделяется память.
возможно. ТС трудно вставить проверку...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2013, 01:05
Привет! Вот еще темы с ответами:

Запись результата программы в файл txt - C++
Всем Добрый вечер.Задание заключается в том что нужно записать имена,предметы и список оценок в файлик Создать функцию и вызвать ее при...

Запись в файл .txt во время исполнения програмы - C++
Есть цикл, когда он находит определенную строку, то он должен записать ее в файл. Если найдет еще подходящую строку, то должен снова...

Чтение и запись в файл - C++
В общем мне нужно читать из файла таблицу и пихать её в стек, а так же этот стек запихнуть обратно в файл.Однако если просто записывать...

Чтение запись в файл - C++
Доброго времени суток. Мир нестаит на месте как и я ) недавно доделаную благодаря форумчанам программу решил сделать такой чтобы...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.12.2013, 01:05
Ответ Создать тему
Опции темы

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