Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 4
1

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

20.01.2010, 20:57. Показов 842. Ответов 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 - записывает верно.
Записывает верно, если числа в файле не разделять пробелом, но мне необходимо их записывать с пробелом. Помогите кто сможет. Очень надо.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2010, 20:57
Ответы с готовыми решениями:

Неправильная запись в файл
void Registration() { system(&quot;cls&quot;); cout &lt;&lt; &quot;Введите логин:&quot;; char Login; cin &gt;&gt; Login;...

Неправильная запись в текстовый файл
При записи в файл вместе с данными (логином и паролем), которые я ввожу, записываются непонятный...

Нет вывода и неправильная запись (запись)
Доброго времени суток! Есть программка записывающая студентов. При записи ФИО через пробел,...

Неправильная запись очков
Не могу отловить момент, когда выводятся рандомные символы void getScoreText() { int d = 1;...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.01.2010, 20:57

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Неправильная запись const char* в std::string
Привет, делаю Web-Парсер на плюсах и Python (на Питоне только Web пока что). В данный момент...

Неправильная запись в файл
Добрый вечер. Помогите, пожалуйста, найти ошибку в программе. В файл вводятся одни иероглифы((...

Неправильная запись структуры в файл
Добрый вечер. Передаю данные из структуры в файл, но вместо того, что записываю я, в файле...

QDataStream, неправильная запись
Здравствуйте! Есть задача: нужно сформировать с помощью программы бинарный файл, который потом...


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

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

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