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

Неправильная запись в файл - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ можеш посмотреть http://www.cyberforum.ru/cpp/thread87863.html
вообще не понимаю
C++ очень нада лабы... 2. Составить программу вычисления данного выражения: , где - функция нахождения наименьшего из двух чисел. http://www.cyberforum.ru/cpp/thread87853.html
Почему лучше инициализировать объекты класса во время инициализации конструктора? C++
Имеется класс Rnd: class Rnd { public: Rnd::Rnd(int x); private: int val; };
C++ Как передалеть operator= класса?
Вот готовая программа, но там одна проблема - после использования оператора=, при изменении значений в одном объекте класса, они изменяются и в другом. Другими словами, как сделать так, чтобы вывод программы был: Frisky's age: 5 whisker's age: 6 а не Frisky's age: 5 whisker's age: 0
C++ Файл input.txt содержит следующую информацию: http://www.cyberforum.ru/cpp/thread87711.html
Файл input.txt содержит следующую информацию: 1 строка - количество элементов массива (N) 2 строка - N целых чисел (массив 1) 3 строка - N целых чисел (массив 2) Написать программу, создающую на основе этих к данных файл output.txt, содержащий самую длинную непрерывную последовательность чисел, присутствующую в обоих массивах.
C++ Класс "студентов" Помогите пожалуйста с задачкой: "Разработать класс для представления сведений о студентах: фамилия, группа, массив из четырёх оценок. Класс должен включать весь необходимый интерфейс: конструкторы, перегрузку операций, другие необходимые методы. Разработать функции: -ввода данных о нескольких студентов в массив(поощряется - из файла); -сортировка массива по группам(поощряется - при... подробнее

Показать сообщение отдельно
VictorTomsk
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 4

Неправильная запись в файл - C++

20.01.2010, 20:57. Просмотров 553. Ответов 0
Метки (Все метки)

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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#pragma hdrstop
#pragma argsused
#include <fstream>
#include <iostream>
#include <string>
#include<sstream>
 
using namespace std;
/*Нахождение простых чисел с помощью решета Эратосфена*/
int* Sieve_of_Eratosthenes(int n)
{
    int *a = new int[n];
    int j = 1, m = 2, Count = 0;
    a[0] = 0; a[1] = 0;
    for (int i = 2; i < n; i++)
    {
        a[i] = 1;
    }
    while (m < n)
    {
        if (a[m] != 0)
        {
            j = m * 2;
            Count++;
            while (j < n)
            {
                a[j] = 0;
                j += m;
            }
        }
        m++;
    }
    int* b = new int[Count];
    int Index = 0;
    for (int i = 0; i < n; i++)
    {
        if (a[i] != 0)
        {
            b[Index] = i;
            Index++;
        }
        if (Index == Count)
        {
            break;
        }
    }
    return b;
}
 
char* IntToChar(int Integer)
{
    string StrToInt;
    ostringstream StreamIndex;
    StreamIndex << Integer;
    StrToInt = StreamIndex.str();
    char* NewCountMail = new char [3];
    for (unsigned int i=0; i < StrToInt.length(); i++)
    {
        NewCountMail[i] = StrToInt[i];
    }
    NewCountMail[StrToInt.length()]='\0';
    return NewCountMail;
}
 
/*Перевод в нужные системы счисления*/
void Text_into_numbering_system(char *input_filename, int* Prime_numbers, int Size, int Max)
{
    int DetectSize, Detect;
    for (int j = 0; j < Size; j++)
    {
        Detect = 0;
        DetectSize = Max;
        while (DetectSize>0)
        {
            DetectSize = DetectSize / Prime_numbers[j];
            Detect++;
        }
        cout<<Detect<<" ";
        int* Recalculation = new int[Detect];
        for (int i = 0; i < Detect; i++)
        {
            Recalculation[i] = 0;
        }
        unsigned char Symbol;
        fstream file_in;
        file_in.open(input_filename, ios_base:: in);
        unsigned int Into_Int;
        if (!file_in)
        {
            cout<<"Error";
        }
        char* FileName = IntToChar(Prime_numbers[j]);
        strcat(FileName,".txt");
        fstream file_out;
        file_out.open(FileName,ios_base:: out);
        cout<<FileName<<"\n";
        delete []FileName;
        Symbol = file_in.get();
        while (!file_in.eof())
        {
            Into_Int=int(Symbol);
            for (int i = Detect - 1; i >= 0; i--)
            {
                Recalculation[i] = Into_Int % Prime_numbers[j];
                Into_Int = Into_Int / Prime_numbers[j];
                if (Into_Int == 0)
                {
                    break;
                }
            }
            for (int i = 0; i < Detect; i++)
            {
                file_out<<Recalculation[i];
                file_out<<" ";
                cout<<Recalculation[i];
                cout<<" ";
            }
            Symbol = file_in.get();
        }
        file_in.close();//закрыли файл, т. к. он больше не нужен
        file_out.close();
        delete []Recalculation;
        cout<<"\n";
    }
}
 
int main()
{
    const int Size = 31;
    const int Max = 128;
    int* Prime_numbers;
    Prime_numbers = Sieve_of_Eratosthenes(Max);//Вывод всех простых чисел до Max
    for (int i=0; i<Size; i++)
        cout<<Prime_numbers[i]<<"  ";
    Text_into_numbering_system("Initial_text.txt",Prime_numbers, Size, Max);
    system ("pause");
    return 0;
}
Писал в Borland Developer Studio 2006 С++ консольное приложение.
Переводит в различные системы счисления текст, потом записывает в файл с названием 2.txt - если система счисления по основанию 2, 5.txt - если основание 5 и т. д.
Так вот в чем загвозка.
В консоль выводит правильно, а вот в файл записывает не верно, но только в том случае, если основание системы счисления с одним разрядом, т. е. 2.txt - запись не верно, а 11.txt - записывает верно.
Записывает верно, если числа в файле не разделять пробелом, но мне необходимо их записывать с пробелом. Помогите кто сможет. Очень надо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru