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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выделение памяти для двухмерного массива внутри функции http://www.cyberforum.ru/cpp-beginners/thread789671.html
Здравствуйте. Предположим, есть код: #include <iostream> #include <iomanip> #include <cstdlib> #include <time.h> using std::cout; using std::endl;
C++ Проверка числа на то, что оно целое Помогите пожалуйста выловить ошибку: Функция должна проверять введенную пользователем строку. Если строка - целое число, возвращать его. Но что-то идет не так, может кто со свежей головой поможет разобраться. Функция проверяет посимвольно строку, и если символ не цифра, то просит повторить ввод, если цифра - заносит в массив. При всех цифрах, цикл заканчивается и делается преобразование... http://www.cyberforum.ru/cpp-beginners/thread789667.html
Найти все парные трехзначные числа, сумма которых не превышает 10 C++
Найти все парные трехзначные числа, сумма которых не превышает 10. Зарание спасибо :)
C++ Массив строк
Здравствуйте. Разбираюсь с массивами :) Вопрос: почему при выполнении программы выдаются адреса памяти, а не строки? #include <iostream> using namespace std; int main() { int a=
C++ Реализация Поиска В Файле http://www.cyberforum.ru/cpp-beginners/thread789658.html
Здравствуйте! В книге Лафоре по ООП на С++ есть задача, реализовать в программе приведенной в главе ( ее я собственно привожу ниже, правда уже в измененном виде, она отличается от данного в учебнике образца лишь методом findEmp(); ) Программа вроде бы и рабочая, но все же думается мне, что я сделал не совсем не то, что хотел от меня автор книги. Текст задачи: К программе EMPL_IO из этой...
C++ Использование функциональных классов Помогите решить задачу: Создать список из строк длиной не более 100 символов. Из всех подряд идущих строк с одинаковым количеством цифр оставить только одну. Физически уменьшить размер списка. Примечание: Во всех вариантах этого задания требуется написать собственный функциональный класс и использовать его в подходящих для выполнения задания алгоритмах STL. Соответствующие контейнеры... подробнее

Показать сообщение отдельно
Алексей89
31 / 31 / 3
Регистрация: 19.02.2013
Сообщений: 118

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

19.02.2013, 01:11. Просмотров 295. Ответов 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 СПРАВОЧНОЕ ПОСОБИЕ", оттуда и взял шаблон записи в файл "с помощью потоков в стиле С++".
Извините если вопрос глупый.
Заранее спасибо.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru