Помощь - Поиск - Пользователи - Календарь
Полная версия: Посимвольное считывание в С#
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
TS*
Возможно ли к экземпляру класа "string" добавить символ "char" последовательно?
Когда я делаю вот так:


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




Каждый символ кидает в отдельную строку, как сделать чтоб символы "склеивались" в одной строке?
klem4
Что значит склеивались ? А чем этот метод не подходит ?

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


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

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

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

Код

абв
олд


вот попробуй.
Кстати может у кого есть какието доки по методах класов С#?
volvo
Цитата
типа ввел: "абв", потом "олд"
А что ты между ними ввел? Уж не Enter ли нажимал? Тогда чего удивляешься, что "разбито" на 2 строки? Как, по-твоему, должна выводиться строка "абв\nолд" ?
TS*
Понял, также перед этим пробовал 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
while (ch != '\n');
будет работать некорректно...

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