Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 20.07.2011
Сообщений: 5

Считать символы

20.07.2011, 15:19. Показов 4419. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Второй день пытаюсь решить вопрос: у меня есть строковый массив
C#
1
string[] answers = new string[picked_cards_num];
задача в том чтобы считать в массив(консольное приложение) все значения, но они могут идти как в строчку через пробел, так и через \n.

так читает только в строку
C#
1
string[] answers = Console.In.ReadToEnd().Split(new char[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries);
так только через \n
C#
1
2
3
4
5
while (i < picked_cards_num)
{
                answers[i] = Console.ReadLine();
                ++i;
}
неужели не существует объединяющей эти действия функции?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.07.2011, 15:19
Ответы с готовыми решениями:

Как считать из файла нестандартные символы
Всем доброго времени суток! Задача: необходимо считать из файла нестандартные символы, такие как параграф (Dec: 167), знак отрицания...

Символы char, с 128 до 159 - пустые символы
такая вот строка: int i; char c = (char)i; при этом при значении i до 128, всё идёт по таблице ASCII, а вот со 128 до 159 символы...

Дана строка. Подсчитать сколько раз в ней встречаются символы ‘a’, ’b’, ’c’. Символы считать отдельно по каждому
Дана строка. Подсчитать сколько раз в ней встречаются символы ‘a’, ’b’, ’c’. Символы считать отдельно по каждому.

10
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
20.07.2011, 15:29
Цитата Сообщение от ArcaneRain Посмотреть сообщение
неужели не существует объединяющей эти действия функции?
C#
1
2
string[] answers = Console.In.ReadToEnd().Split(new char[] { ' ', '\n' },
                             StringSplitOptions.RemoveEmptyEntries);
может быть:
C#
1
2
string[] answers = Console.In.ReadToEnd().Split(new string[] { "\r\n"," ","\n" },
                             StringSplitOptions.None);
0
0 / 0 / 0
Регистрация: 20.07.2011
Сообщений: 5
20.07.2011, 15:49  [ТС]
спасибо за ответ, но теперь он считывает символы бесконечно(
0
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
20.07.2011, 15:55
эм, извини)
вот проверил (проблема в том, что в консоли перенос строки обозначается через \r\n):
C#
1
string[] answers = Console.In.ReadToEnd().Split(new string[] { "\r\n", " " }, StringSplitOptions.RemoveEmptyEntries);
а чтобы завершить ввод Enter >> Ctrl+Z >> Enter

Добавлено через 3 минуты
а если Linux, то Ctrl+C
2
0 / 0 / 0
Регистрация: 20.07.2011
Сообщений: 5
20.07.2011, 15:59  [ТС]
хм) спасибо, действительно заканчивает) но способ несколько извращенный)
0
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
20.07.2011, 16:00
Цитата Сообщение от ArcaneRain Посмотреть сообщение
но способ несколько извращенный)
а как ты делал до этого?
0
0 / 0 / 0
Регистрация: 20.07.2011
Сообщений: 5
20.07.2011, 16:08  [ТС]
в первом посте описал) просто на тимусе попалась задача, где в условии стоит 2 комбинированных вида ввода. вот теперь думаю, схавает он такой вариант или нет.
0
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
20.07.2011, 16:13
Цитата Сообщение от ArcaneRain Посмотреть сообщение
в первом посте описал)
))
C#
1
2
3
4
5
while (i < picked_cards_num)
{
                answers[i] = Console.ReadLine();
                ++i;
}
ну тут понято, пока не наберется нужное количество, а тут?
C#
1
 string[] answers = Console.In.ReadToEnd().Split(new char[] { ' ', '\n' }, StringSplitOptions.RemoveEmptyEntries);
я умею только через Ctrl+Z(
0
0 / 0 / 0
Регистрация: 20.07.2011
Сообщений: 5
20.07.2011, 16:23  [ТС]
а во втором до Enter в строчку. например 4 символа
1 2 3 4Enter
вот и будет массив с 1 2 3 4.
0
68 / 66 / 19
Регистрация: 27.12.2008
Сообщений: 212
20.07.2011, 16:37
Цитата Сообщение от ArcaneRain Посмотреть сообщение
1 2 3 4Enter
тогда там скорее всего не ReadToEnd(). Потому что как тогда разделять символы с помощью перевода строки - если она будет означать конец ввода?
Вообщем-то Ctrl+Z должны принять - это стандартный способ указать конец данных (EOF), но может быть можно как-то указать другой символ завершения (в C++ например можно)
Либо переделать вариант с while:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
 while (i < picked_cards_num)
{
//массив в котором идет разбиение строки
string[] temp = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
//заполнить основной массив
foreach (string str in temp)
{
    answers[i++] = str;
//если набрано достаточное количество
    if (i == picked_cards_num) break;
}
                
}
0
3 / 3 / 1
Регистрация: 20.07.2011
Сообщений: 10
20.07.2011, 16:56
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        ConsoleKeyInfo info;
        int i=0;
        int length=10;
        string[] lines = new string[length];
        while (i < length) 
        {
            info=Console.ReadKey();
            if (info.Key == ConsoleKey.Enter)
                Console.WriteLine();
            if ((info.Key == ConsoleKey.Enter) || (info.Key == ConsoleKey.Spacebar))
                i++;                
            else 
            { lines[i] = lines[i] + info.KeyChar.ToString();            
            }
        }
        for (int j = 0; j < length; j++)
            Console.WriteLine("string[" + j.ToString() + "]=" + lines[j]);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.07.2011, 16:56
Помогаю со студенческими работами здесь

Считать символы из файла
Есть предварительно созданный файл, считать его все символы

Считать символы из файла в массив
Пожалуйста. нужен код для реализации считывания символов из файла (.txt) в массив На С (и если не трудно, то и на С++) Спасибо

Считать символы из файла в массив
Всем привет. Нужно считать из файла символы и поместить их в массив. Разрешены только функции open, read, write, malloc, free. Не...

Считать символы из строки между разделителями
Доброго времени суток, уважаемые форумчане!!! Необходимо считать все символы, которые находятся между символами &quot;{&quot; и...

Считать символы из вектора в массив чаров
Задача из вектора string перекидать значения в массив чаров, каждый элемент вектора это должен быть один из массивов... Я не могу сделать...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 23.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru