IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Посимвольное считывание в С#, Класс string
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 71
Пол: Мужской
Реальное имя: Max

Репутация: -  0  +


Возможно ли к экземпляру класа "string" добавить символ "char" последовательно?
Когда я делаю вот так:


string cmnd = ("");
char chr;
do
{
chr = (char)Console.Read();
cmnd+=chr;
} while (chr != ' ');
Console.WriteLine(cmnd);




Каждый символ кидает в отдельную строку, как сделать чтоб символы "склеивались" в одной строке?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


Что значит склеивались ? А чем этот метод не подходит ?

Вот так еще можно :


static void Main(string[] args)
{
char ch;
string s = "";

do
{
ch = Console.ReadKey().KeyChar;
s += ch;
} while (ch != ' ');
Console.WriteLine(s);
Console.ReadLine();
}



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 71
Пол: Мужской
Реальное имя: Max

Репутация: -  0  +


В твоем случае всьо нормально, в моем должно делать то же, но почеу то выводит в консоль строку не целую, а по частях, типа ввел: "абв", потом "олд", оно выводит :

Код

абв
олд


вот попробуй.
Кстати может у кого есть какието доки по методах класов С#?

Сообщение отредактировано: TS* -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
типа ввел: "абв", потом "олд"
А что ты между ними ввел? Уж не Enter ли нажимал? Тогда чего удивляешься, что "разбито" на 2 строки? Как, по-твоему, должна выводиться строка "абв\nолд" ?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 71
Пол: Мужской
Реальное имя: Max

Репутация: -  0  +


Понял, также перед этим пробовал StringBuilder, а к нему присоединять строки, выводило в одной строке,
просто конечная цель сделать чтоб первое слово записалось в одну переменную, а второе во вторую, потом <Enter>, попробовал:


char ch;
string cmnd = "";
string way = "";

do
{
ch = Console.ReadKey().KeyChar;
cmnd += ch;
} while (ch != ' ');
ch='';
do
{
ch = Console.ReadKey().KeyChar;
way += ch;
} while (ch != '\n');

Console.WriteLine(cmnd);
Console.WriteLine(way);




Но оно начинает бесконечно считывать символы

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






while (ch != '\n');
будет работать некорректно...

Нужно
while (ch != 0x0d);
если я не ошибаюсь... Или 0x0a unsure.gif (проверить сейчас не могу, у меня С# не установлена...)
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 18.11.2017 8:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"