Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Nastya_GGG
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 11
1

Работа с файлами . Как записать массив случайных чисел в файл ?

28.04.2013, 17:25. Просмотров 2255. Ответов 8
Метки нет (Все метки)

Подскажите пожалуйста)
Вот создаю я файл:
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
FileStream fout; 
int t;
int[] arr = new int[10];
        
 try
        {
            fout = new FileStream("d:/f_name.txt", FileMode.Create);
        }
        catch (IOException er)
        {
            Console.WriteLine(er.Message + "\n Возникла ошибка при открытии выходного файла!");
            return;
        }
        try
        {
            Random rnd = new Random();
            for (int c = 0; c < 10; c++)
                arr[c] = rnd.Next(1, 100);
            for(int c=0;c<10;c++)
            fout.WriteByte((byte)c);
        }
        catch (IOException er)
        {
            Console.WriteLine(er.Message + "\n Возникла ошибка при записи данных в файл!");
        }

Пытаюсь записать массив , но что-то безуспешно..какие-то символы записываются ,но точно не то , что нужно...
Подскажите, пожалуйста, как решить эту проблему? Что не так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2013, 17:25
Ответы с готовыми решениями:

Записать в файл массив из 10 случайных чисел
Задание: Создать текстовый файл. Записать в файл массив из 10 int, заполненный...

Записать в файл N целых чисел, полученных с помощью генератора случайных чисел
Помогите пожалуйста, нужно записать в файл N целых чисел, полученных с помощью...

Записать в файл N натуральных чисел: a1, a2,..., an (числа получить с помощью датчика случайных чисел)
Помогите с лабами) 1) Записать в файл N натуральных чисел: a1, a2,..., an...

Записать в файл массив действительных чисел по убыванию, а в другой файл - по возрастанию
Составить программу записи в файл F1 массива 40 действительных чисел по...

Как создать двумерный массив случайных чисел на с#?
В поисковик вбил этот вопрос и там либо нет примеров, либо примеры для...

8
Anklav
440 / 299 / 46
Регистрация: 23.01.2013
Сообщений: 633
Завершенные тесты: 2
28.04.2013, 17:34 2
C#
1
2
for(int c=0;c<10;c++)
    fout.WriteByte((byte)c);
Вот тут вы ошиблись. Значение массива записывать надо, а не его номер.

ЗЫ fout.WriteByte((byte)arr[c]);
0
Nastya_GGG
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 11
28.04.2013, 17:39  [ТС] 3
Цитата Сообщение от Anklav Посмотреть сообщение
C#
1
2
for(int c=0;c<10;c++)
    fout.WriteByte((byte)c);
Вот тут вы ошиблись. Значение массива записывать надо, а не его номер.

ЗЫ fout.WriteByte((byte)arr[c]);
Cпасибо. Но почему записываются какие-то непонятные символы вместо чисел?Что с этим можно сделать?
0
Fler
208 / 210 / 44
Регистрация: 20.12.2011
Сообщений: 635
28.04.2013, 17:52 4
C#
1
2
3
4
5
6
7
8
[S]FileStream fout;[/S] 
StreamWriter fout;
...
[S]fout = new FileStream("d:/f_name.txt", FileMode.Create);[/S]
fout = new StreamWriter("d:/f_name.txt", false);
...
[S]fout.WriteByte((byte)c);[/S]
fout.WriteLine(arr[c]);
потому что вы пишите байты
например, число 10. вы записываете в файл 10(в таблице символов ему соответствует один такой непонятный символ), а не символьное представление этого числа

Добавлено через 24 секунды
тэгами [s] выделены строки которые заменять
0
Anklav
440 / 299 / 46
Регистрация: 23.01.2013
Сообщений: 633
Завершенные тесты: 2
28.04.2013, 17:54 5
Потому что когда вы открываете файл с помощью блокнота, он заменяет записанные вами байты (цифры) на символы, согласно кодировке. Допустим вот таблица для ASCII кодировки: http://blog.iwrowo.com.ua/ascii-code/
0
Nastya_GGG
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 11
28.04.2013, 18:01  [ТС] 6
Цитата Сообщение от Fler Посмотреть сообщение
C#
1
2
3
4
5
6
7
8
[S]FileStream fout;[/S] 
StreamWriter fout;
...
[S]fout = new FileStream("d:/f_name.txt", FileMode.Create);[/S]
fout = new StreamWriter("d:/f_name.txt", false);
...
[S]fout.WriteByte((byte)c);[/S]
fout.WriteLine(arr[c]);
потому что вы пишите байты
например, число 10. вы записываете в файл 10(в таблице символов ему соответствует один такой непонятный символ), а не символьное представление этого числа

Добавлено через 24 секунды
тэгами [s] выделены строки которые заменять

А с помощью чего тогда это можно сделать? Я уже пробую и так(вычитала где-то):
C#
1
2
3
4
5
6
7
8
9
try
        {
            Random rnd = new Random();
            for (int c = 0; c < 10; c++)
                arr[c] = rnd.Next(1, 100);
            StreamWriter print = new StreamWriter("d:/File1.txt", false);
            print.Write(arr);
            print.Close();
        }
ъ

Всё равно не получается именно массив записать(
0
Fler
208 / 210 / 44
Регистрация: 20.12.2011
Сообщений: 635
28.04.2013, 18:03 7
в цикле каждый элемент отдельно писать надо

Добавлено через 57 секунд
свой старый код можете оставить, но замените те 3 строки, которые я показал
0
Nastya_GGG
0 / 0 / 2
Регистрация: 28.04.2013
Сообщений: 11
28.04.2013, 18:24  [ТС] 8
Цитата Сообщение от Fler Посмотреть сообщение
в цикле каждый элемент отдельно писать надо

Добавлено через 57 секунд
свой старый код можете оставить, но замените те 3 строки, которые я показал
Вот так пытаюсь :
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int[] arr = new int[10];
            StreamWriter fout;
             Random rnd = new Random();
            for (int c = 0; c < 10; c++)
                arr[c] = rnd.Next(1, 100);
            try{
                fout=new StreamWriter("d:/f_name.txt",false);
                 for (int c = 0; c < 10; c++)
                fout.WriteLine(arr[c]);
               }
 
        catch (IOException er)
        {
            Console.WriteLine(er.Message + "\n Возникла ошибка при записи данных в файл!");
        }
Всё равно не получается . Опять не правильно что-то?
0
Fler
208 / 210 / 44
Регистрация: 20.12.2011
Сообщений: 635
28.04.2013, 18:35 9
файл закрыть надо после записи
C#
1
fout.Close();
0
28.04.2013, 18:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2013, 18:35

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

С помощью генератора случайных чисел записать элементы матрицы B[3][3]
Вечер добрый! Помогите пожалуйста составить программу: С помощью генератора...

Как записать файл построчно в двоичный массив?
Есть файл с текстом &amp;a b c &amp;x y z Надо все это загнать в массив...


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

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

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