Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/15: Рейтинг темы: голосов - 15, средняя оценка - 4.80
 Аватар для Iangyl
32 / 34 / 21
Регистрация: 31.03.2018
Сообщений: 495

Входная строка имеет неверный формат

26.09.2020, 18:32. Показов 3594. Ответов 26

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Пишу простенький квайн, вроде все написал как нужно, но при выводе на консоль строки с кодом выбивает ошибку: Входная строка имеет неверный формат.
Вопрос: В чём дело?
Тут код:
Кликните здесь для просмотра всего текста

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
static string ReverseString(string s)
    {
        char[] arr = s.ToCharArray();
        Array.Reverse(arr);
        return new string(arr);
    }
    static void Main()
    {
        string str1 = Console.ReadLine();
        string str2 = Console.ReadLine();
 
        str1 = str1.Length > 10 ? str1.Substring(0, 10) : str1;
        str2 = str2.Length > 10 ? str2.Substring(0, 10) : str2;
 
        string s = @"
                using System;
                class A 
                {
                    static void Main()
                    {
                        string str1 = Console.ReadLine();
                        string str2 = Console.ReadLine();
 
                        str1 = str1.Length > 10 ? str1.Substring(0, 10) : str1;
                        str2 = str2.Length > 10 ? str2.Substring(0, 10) : str2;
 
                        string s = { 0 }{ 1 }{ 0 };
                        if (s.Contains(str1))
                        {
                            int firstInd = s.IndexOf(str1);
                            int lastInd = s.LastIndexOf(str1);
                            s = firstInd == 0 ? str2 + s.Substring(lastInd) : s.Substring(0, firstInd) + str2 + s.Substring(lastInd);
                            ReverseString(s);
                        }
                        else ReverseString(s);
                        char q = '{0}';
                        Console.Write(s,q,s);
                    }
                 }
        ";
 
        if (s.Contains(str1))
        {
            int firstInd = s.IndexOf(str1[0]);
            int lastInd = firstInd + str1.Length;
            s = firstInd == 0 ? str2 + s.Substring(lastInd) : s.Substring(0, firstInd) + str2 + s.Substring(lastInd);
            ReverseString(s);
        }
        else ReverseString(s);
 
        char q ='"';
        Console.Write(s, q, s);
    }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.09.2020, 18:32
Ответы с готовыми решениями:

Входная строка имеет неверный формат
Всем привет. Есть матрица, далее идет запить в файл, из файла -> на консоль. Никак не могу побороть эту ошибку. using System; ...

Входная строка имеет неверный формат
Помогите разобраться. Ошибка: Входная строка имеет неверный формат float result = 0; if...

Входная строка имела неверный формат
while (true) { Thread.Sleep(1); Random rand = new Random(DateTime.Now.Millisecond); ...

26
 Аватар для Iangyl
32 / 34 / 21
Регистрация: 31.03.2018
Сообщений: 495
27.09.2020, 21:37  [ТС]
Студворк — интернет-сервис помощи студентам
randok, да, если сделать так:
C#
1
Console.Write(s);
То выведет код, но он будет не подлинный так, как в нём будет отсутствовать значение строки s. При инициализации строки подставить строку s не возможно так-как она не сформирована, а дублировать код... Я уверен, что есть подход без дубляжа.
Если у вас есть какие-то идеи, буду признателен, если озвучите(опишите).
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
27.09.2020, 23:28
Вообще квайны пишутся примерно так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
internal class Program
    {
        public static void Main()
        {
            string s = @"
            internal class Program{{
                public static void Main(){{
                    string s = @{0}{1}{0};
                    string str = ""text"";
                    Console.Write(s, '""', s);}}}}";
            string str = "text";
            Console.Write(s, '"', s);
        }
    }
Но, честно говоря, я не очень понимаю, какие ошибки вы хотите отловить в программе с помощью квайна, это же чисто спортивный интерес и не более.
2
 Аватар для Enifan
1853 / 1202 / 502
Регистрация: 14.10.2018
Сообщений: 3,344
28.09.2020, 13:31
Цитата Сообщение от randok Посмотреть сообщение
квайны пишутся примерно так
я правильно понял, что надо дублировать символы " { }. В них получается проблема ?
0
 Аватар для Iangyl
32 / 34 / 21
Регистрация: 31.03.2018
Сообщений: 495
28.09.2020, 15:53  [ТС]
Цитата Сообщение от randok Посмотреть сообщение
это же чисто спортивный интерес и не более.

Не по теме:

Именно. Я кажется понял, где ошибка. Сейчас попробую



Добавлено через 53 минуты
В общем и целом попробовал организовать код, как вы(randok) показали на своём примере и ошибка была та же.
Поэтому я сделал вставку вручную:
C#
1
2
3
int firstIndx = s.IndexOf('"');
int lastIndx = firstIndx + 6;
s = s.Substring(0, firstIndx + 1) + s + s.Substring(lastIndx);
Теперь всё работает.

Добавлено через 1 минуту
На вопрос почему именно так высчитываю lastIndx, вот ответ:
C#
1
"string s = @""{text}"";"
Это фрагмент из строки.
0
 Аватар для Enifan
1853 / 1202 / 502
Регистрация: 14.10.2018
Сообщений: 3,344
28.09.2020, 16:18
Iangyl, а что если использовать такой вариант ? Для браузера не подойдет (из за System.IO), но для Visual Studio работает.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
 
class Program
{
    static void Main()
    {
        string test = "{0} {1} {0}";
        string str = System.IO.File.ReadAllText("../../Program.cs");
        str = str.Replace("{0}", "qwerty");
        str = str.Replace("{1}", "---");
        Console.WriteLine(str);
 
        Console.ReadKey();
    }
}
0
619 / 399 / 187
Регистрация: 28.11.2019
Сообщений: 867
28.09.2020, 17:44
Цитата Сообщение от Enifan Посмотреть сообщение
я правильно понял, что надо дублировать символы " { }. В них получается проблема ?
Много условностей, и зависит от языка, особенно если писать цепной квайн. Проблемы с кавычками - если их просто экранировать, то надо и экранировать само экранирование. То есть например вот это:
C#
1
Console.Write(s, '"', s);
лучше поменять на
C#
1
Console.Write(s, (char)34, s);
С символами {} да, тоже проблема. В общем, нужно учесть все подобные моменты.
2
28.09.2020, 19:49  [ТС]

Не по теме:

Enifan, да можно. Только у меня есть условия, которые ограничивают меня в использовании такого вида решения.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.09.2020, 19:49

Входная строка имела неверный формат
Здравствуйте! Выдает ошибку: "Входная строка имела неверный формат" в последних двух строчках. Прикол в том, что в строке перед двумя...

Входная строка имела неверный формат.
Ребят,выручайте,у меня уже глаз намылился. При вызове метода UnEncryption в строке 77 выходит ошибка "Входная строка имела неверный...

Входная строка имела неверный формат
string massiv1; string c; double result; massiv1 = new string; c = new string; c = massiv1;

Входная строка имела неверный формат
Функция читает файл в котором есть одна строка со значением 0.01 string sversion = File.ReadAllText(fileVersionName); ...

Входная строка имела неверный формат
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) { chart1->Series->Points->Clear(); TState S; ...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru