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

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

Войти
Регистрация
Восстановить пароль
 
Алексей89
31 / 31 / 3
Регистрация: 19.02.2013
Сообщений: 118
#1

"4102" в конце файла при записи - C++

19.02.2013, 01:11. Просмотров 304. Ответов 2
Метки нет (Все метки)

Я не программист, я радиофизик, но у меня возникла необходимость написать программу на c++
Суть проблемы:
по нажатии на кнопку в файл пишутся некоторые значения массива.
но при работе в различных режимах, так или иначе файл заканчивается цифрами "4102" с новой строки.
По количеству значений видно, что эти цифры просто дописываются (не вместо последнего числа)
Мне не ясен источник этой особенности, как его корректноо устранить?
Код модуля:
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
void __fastcall TQAtab::ButtonSaveClick(TObject *Sender)
{
int A, B, step;
unsigned int i;
extern int Kstep, cntr,Rin, Rout, CSin, CCSout;
extern unsigned int Kcmb;
extern unsigned int *PRes;      //Pointer Residue - глобальный указатель на целевой массив
ofstream outfile("cmb.dat");    //Объявление потока
if (!outfile)           //блок выявляющий случаи, когда файл не удалось открыть (создать)
{
Memo1->Lines->Add(Now().TimeString()+": "+"Файл не удалось создать");
return;
}
i=0;    //i - счётчик элементов массива
A=EditA->Text.ToInt();
if ((A<0)||(A>Kcmb))    //Проверка корректности значения A
{
Memo1->Lines->Add(Now().TimeString()+": "+"Запись файла невозможна Задайте другую начальную точку");
return;
}
B=EditB->Text.ToInt();          //Определение параметров масштабирования записи
if ((B<A)||(B>Kcmb))    //Проверка корректности значения B
{
Memo1->Lines->Add(Now().TimeString()+": "+"Запись файла невозможна Задайте другую конечную точку");
return;
}
step=EditStep->Text.ToInt();
if ((step<0)||(step>(B-A)))    //Проверка корректности значения step
{
Memo1->Lines->Add(Now().TimeString()+": "+"Запись файла невозможна Задайте другой шаг");
return;
}
for (i=A;i<B;i=i+step)          //Цикл записи в файл
{
outfile << PRes[i]<<'\n';       //Запись значения c переносом на следующую строку
}
outfile << PRes[B];             //Запись последнего (В-го) значения (как правило, не соответствует шагу)
Memo1->Lines->Add(Now().TimeString()+": сохранено в значениях от "+A+" до "+B+" c шагом "+step);
outfile.close();
в качестве библии пользуюсь: А.Я. Архангельский "O+Builder 6 СПРАВОЧНОЕ ПОСОБИЕ", оттуда и взял шаблон записи в файл "с помощью потоков в стиле С++".
Извините если вопрос глупый.
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2013, 01:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос "4102" в конце файла при записи (C++):

Необработанное исключение в "0x01082855" в "sort.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc" - C++
Всем привет! помогите мне понять в чём дело. написал программу: #include &quot;stdafx.h&quot; #include &lt;ctime&gt; #include &lt;iostream&gt; #include...

Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd" - C++
Вот функция для удаления столбца: #pragma once #include &lt;iostream&gt; using namespace std; int **DeleteIndexCol(int **ar,int s1,int...

Необработанное исключение в "0x54a2d2e9 (msvcr100d.dll)" в "3.exe": 0xC0000005: Нарушение прав доступа при записи "0xcccccccc". - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;string&gt; #include&lt;stdlib.h&gt; using namespace std; class Goods { char* name; ...

Необработанное исключение в "0x776315de" в "c++1.exe": 0xC0000005: Нарушение прав доступа при записи "0x40e000 - C++
Здравствуйте. Только начал работать с динамическим массивом, но не могу понять почему появляется эта ошибка. Работаю с библиотекой sfml....

Необработанное исключение в "0x104b2288" в "Matrix.exe": 0xC0000005: Нарушение прав доступа при записи "0xcdcd - C++
Вот такая ошибка!

При выводе char* в конце строки "tr" - C++
struct List { char* inf; List* next; }; void AddToHead(List* &amp;head, char* inf) { List* p = new List; p-&gt;inf = inf; ...

2
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
19.02.2013, 10:46 #2
Цитата Сообщение от Алексей89 Посмотреть сообщение
for (i=A;i<B;i=i+step) //Цикл записи в файл { outfile << PRes[i]<<'\n'; //Запись значения c переносом на следующую строку } outfile << PRes[B];
а не
C++
1
 outfile << PRes[B-1]
ну или у тебя в массиве массиве точно есть В-ый элемент
0
Алексей89
31 / 31 / 3
Регистрация: 19.02.2013
Сообщений: 118
19.02.2013, 17:11  [ТС] #3
Цитата Сообщение от aLarman Посмотреть сообщение
ну или у тебя в массиве точно есть В-ый элемент
Действительно В-го элемента не оказалось, оказывается если массив определён как:
C++
1
unsigned int *Res = new unsigned int [B];
то элементы определены в диапазоне от 0 до В-1, всего В элементов.
Спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2013, 17:11
Привет! Вот еще темы с ответами:

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") - C++
Описать структуру с именем &quot;ORDER&quot;, содержащий следующие поля: &quot;Счет плательщика&quot;; &quot;Счет получателя&quot;; &quot;Сумма, переводится банковской...

Вывести текст файла, заменив цифры от 0 до 9 на слова "ноль", "один"."девять", начиная каждое предложение с новой строки - C++
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова &quot;ноль&quot;, &quot;один&quot;...&quot;девять&quot;,...

Необработанное исключение в "0x00414558" в "467.exe": 0xC0000005: Нарушение прав доступа при чтении "0xabababbb" - C++
При выполнении этого кода #include &lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int main () { int x; unsigned int...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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