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

Помогите исправить программу запись в файл - C++

Восстановить пароль Регистрация
 
Oniablo
1 / 1 / 0
Регистрация: 26.12.2011
Сообщений: 10
11.01.2012, 22:24     Помогите исправить программу запись в файл #1
Нужно записат в файл массив чисел от 100 до 300 заполнить случайным образом. В файл записываются одни символы. помогите исправить программу
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
#include <iostream>
#include <time.h>
#include <stdio.h>
using namespace std;
const int n=100;
int d[n];
char p[200];
int k;
size_t file;
void main ()
{
    setlocale(LC_ALL, "Russian");
    const int n=201;
    srand (time(NULL));
    for (int i=0; i<n; i++)
    {
        d[i]=100+rand()%200;
    }
    
    for (int i=0; i<n; i++)
    {
    d[i]=100+rand()%201;
    
   
    }
    FILE* fl=fopen("D:\\file2.txt", "wt");
    file=fwrite(&d, sizeof(char), n, fl);
    fclose(fl);
        system("PAUSE");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.01.2012, 22:58     Помогите исправить программу запись в файл #2
Цитата Сообщение от Oniablo Посмотреть сообщение
const int n=100;
Цитата Сообщение от Oniablo Посмотреть сообщение
const int n=201;
Читать дальше не вижу смымсла.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
12.01.2012, 00:17     Помогите исправить программу запись в файл #3
Есть вариант :

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
#include <iostream>
#include <fstream>
#include <time.h>
#include <stdio.h>
using namespace std;
 
    void main ()
{
        ofstream file("/* твой файл */.txt");
 
        const int n = 200;
        int     k;
        int d[n];
 
        srand (time(NULL));
 
        for (int k =0; k <n; k++)
 
        {
                d[k] = 1 + rand()%200;
        }
 
         for (int  k = 0; k < n; k ++)
        {
            file << d[k];
 
             file << '  ';
                         }
          system("PAUSE");
}
 Комментарий модератора 
Используйте теги форматирования кода!
-=ЮрА=-
Заблокирован
Автор FAQ
12.01.2012, 00:48     Помогите исправить программу запись в файл #4
Цитата Сообщение от Oniablo Посмотреть сообщение
Нужно записат в файл массив чисел от 100 до 300 заполнить случайным образом. В файл записываются одни символы. помогите исправить программу
Цитата Сообщение от Oniablo Посмотреть сообщение
const int n=100;
int d[n];
- память под массив 100 элементов, в теле мэйна уже для 200-х ста элементов пытаетесь генерировать - где смысл???

Цитата Сообщение от Oniablo Посмотреть сообщение
const int n=201;
* * * * srand (time(NULL));
* * * * for (int i=0; i<n; i++)
* * * * {
* * * * * * * * d[i]=100+rand()%200;
* * * * }
Вот простой рабочий код, число элементов в массиве можно задавать вручную, при желании можно дописать ручной ввод пределов генерирования
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
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
 
int main ()
{
    cout<<"Enter number of elements in array n =  ";
    int i, n;cin>>n;
    int * d = new int[n];
    srand (time(NULL));
    ofstream ofs("file2.txt");
    cout<<"Generated sequence\n";
    for (i = 0; i<n; i++)
    {
        cout<<(d[i] = 100 + rand()%200)<<" ";
        ofs<<d[i]<<" ";
    }   
    if(ofs.good())
        cout<<"\nWriting OK\n";
    else
        cout<<"\nWriting error\n";
    ofs.close();
    delete [] d;
    system("pause");
    return 0;
}
file2.txt
275 185 153 154 262 239 202 227 290 205 244 212 208 164 231 243 116 204 125 264 230 123 297 227 295 254 226 189 182 143 235 293 164 199 173 188 244 157 294 139 127 216 108 171 270 154 221 164 114 261 209 235 185 194 138 118 145 224 242 138 186 226 142 263 215 293 178 137 270 120 117 155 280 276 254 127 291 142 223 265 134 218 161 229 212 154 129 150 188 216 297 153 224 145 298 232 142 162 136 187 220 279 206 196 151 281 116 146 268 192 230 225 120 266 167 152 286 139 214 291 104 141 184 105 272 233 150 249 119 127 112 233 293 195 209 215 170 120 253 275 252 249 177 260 154 286 139 259 233 164


Цитата Сообщение от Oniablo Посмотреть сообщение
В файл записываются одни символы.
- понятное дело так и будет чтобы писать текстовое изображение цифр,можно либо делать строку в которую форматированно вводить символы, либо сразу делать вывод в поток как это сделанно у меня
Миниатюры
Помогите исправить программу запись в файл  
-=ЮрА=-
Заблокирован
Автор FAQ
12.01.2012, 01:07     Помогите исправить программу запись в файл #5
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
можно либо делать строку в которую форматированно вводить символы
- чтобы был понятен и такой вариант вот код
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
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
 
int main ()
{
    cout<<"Enter number of elements in array n =  ";
    int i, n, buf;cin>>n;
    int * d = new int[n];
    char *s = new char[3*n + n + 4];//3 ñèìâîëГ* Г*Г* Г·ГЁГ±Г«Г* 1 ñèìâîë Г*Г* ïðîáåë
    time_t t;
    srand (time(&t));
    cout<<"Generated sequence\n";
    for (i = 0; i < n; i++)
    {
        cout<<(d[i] = 100 + rand()%200)<<" ";
        buf = d[i];
        s[i*3 + i] =  '0' + d[i]/100;
        buf = buf%100;
        s[i*3 + i + 1] =  '0' + buf/10;
        buf = buf%10;
        s[i*3 + i + 2] =  '0' + buf;
        s[i*3 + i + 3] = ' ';
    }   
    s[i*3 + i] = '\0';
    ofstream ofs("file2.txt");
    ofs.write(s,strlen(s));
    if(ofs.good())
        cout<<"\nWriting OK\n";
    else
        cout<<"\nWriting error\n";
    ofs.close();
    delete [] d;
    delete [] s;
    system("pause");
    return 0;
}
file2.txt
219 256 131 124 225 123 142 299 146 291 191 139 265 132 173 184 198 261 180 223 250 233 137 255 181 143 173 248 235 238 145 229 125 213 196 279 148 171 161 242 283 162 212 291 126 161 222 290 141 218 279 108 277 240 164 149 113 254 201 244 221 156 296 287 268 275 243 161 202 260 126 201 252 139 137 108 286 242 116 182 213 211 292 141 207 285 141 223 112 276 160 245 247 290 264 199 232 274 199 114 210 215 190 104 283 288 205 271 163 158 167 124 151 161 290 129 103 104 125 261 178 136 179 147 216 184 112 102 169 114 249 115 140 211 280 231 210 207 208 155 284 247 222 293 153 220 169 177 109 249 116 231 239 140 281 175 218 133 208 242 231 234 264 195 216 282 165 167 191 296 299 264 160 195 274 272 157 212 283 284 289 159 217 110 127 254 115 112 220 186 233 246 234 275 213 187 238 274 221 111 260 165 286 167 121 147 155 261 258 233 173 242 187 195 141 249 202 255 217 238 110 279 171 215 194 117 216 146 294 260 263 207 208 252 168 287 142 263 200 133 223 210 178 275 227 238 207 185 225 151 146 162 288 100 181 231
Миниатюры
Помогите исправить программу запись в файл  
Yandex
Объявления
12.01.2012, 01:07     Помогите исправить программу запись в файл
Ответ Создать тему
Опции темы

Текущее время: 15:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru