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

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

26.09.2020, 18:32. Показов 3536. Ответов 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
1851 / 1199 / 502
Регистрация: 14.10.2018
Сообщений: 3,307
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
1851 / 1199 / 502
Регистрация: 14.10.2018
Сообщений: 3,307
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
Ответ Создать тему
Новые блоги и статьи
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости. Решение: Создан документ со следующими. . .
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово. Решение: Создан документ с единственным. . .
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Вычислить сумму и количество положительных элементов массива, расположенных в четных строках. Решение: Создан документ с. . .
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru