Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Kiril1914 avatar Kiril1914 2 Точки

string problem или проблем при четенето на текст в цикъл...

Здравейте, имам следния проблем/въпрос: Защо когато използвам цикли("while", "for " и т.н) при четенето на string в тялото на самият цикъл от конзолата ми го чете като число а не като текст! 

Пример: 

                while (условие)
                {
                    int number = int.Parse(Console.ReadLine());

                    string command = Console.ReadLine();

                    if (command == "stop")
                    {

                         Console.WriteLine("End!");
                        break;
                    }

 

И съответния вход:

50

10

10

stop                   

При команда "stop" чупи програмата! Като няма принтенето от "Console.WriteLine()" и ми изписва някакво съобщение, че формата на стринга не е приемлив.  При debug "command " ми го чете като число, в случая 10. А не като текст! 

Направи ми впечатление, че ако четем string извън проверките и няма други четения, работи коректно. Но на мен ми трябва в самият цикъл да го чете всеки път, само като текст...

 

Гледах няколко лекции от курсовете "Programming Basics with C#" и там лекторите жунглират със "string" както пожелаят. Пробвах по същия начин но не се получава. Това горе е само пример, тъй като условието на задачата която решавам е прекалено сложно и ще отнеме време за обяснения... :D :D   

Благодаря 

0
Programming Basics
T_Chapkanov avatar T_Chapkanov 10 Точки

В примерът който си написал, 'Stop' трябва задължително да ти е на четна позиция при четенето от конзолата и ако е нечетна позиция ще бъде прочетено от първият реадер и преобразувано в число. Пробвай с tryParse, трябва само да погледнеш в интернет как се ползва, и как може да го ползваш в твоето решение.

0
28/03/2020 22:39:01
Kiril1914 avatar Kiril1914 2 Точки

Благодаря за съдействието!

Поздрави

0
martin4o124 avatar martin4o124 3 Точки

Защото имаш два входа, тоест когато напишеш команда "Stop" отива при 

int number = int.Parse(Console.ReadLine()); , което очаква число, а ти му даваш string и съответно ти дава грешка

не знам какво е условието, но аз направих примерен код с обяснения, който се надявам да ти помогне.

https://pastebin.com/v27j5EEa

0
Kiril1914 avatar Kiril1914 2 Точки

Всъщност не е така :D Реших да дебъгна кода ти, при четенето, "command" пак си го чете като число а не като текст. Даже приема два входа, двойки числа. Явно ми трябва накакъв конвърт на string.

0
29/03/2020 10:35:09
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.