<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Проблема новичка </title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html</link>
    <description>Всем доброго времени суток. Изучаю программирование и решая задачу столкнулся с проблемой, нуждаюсь в объяснении что я делаю не так. Приступим:&lt;br&gt;Задача 12.7: Даны две фамилии. Определить, какая из них длиннее. (из задачника &quot;1400 задач по программированию&quot; от Златопольский Д.М.)&lt;br&gt;Для себя решил что входные данные поданы в виде одной строки.&lt;br&gt;Код решения компилируется без замечаний (gcc -Wall -g file.c -o file).&lt;br&gt;При запуске программы получаю бесконечный ввод данных.&lt;br&gt;Тестируя отдельно самолепную функцию GetString таких проблем не получаю и ввод заканчивается как и задумано при нажатии клавиши Enter. Добавление 1 следующей строчки кода и отладочной печати ведет к вышеназванной проблеме бесконечного ввода. Объясните что я делаю не так. Спасибо за внимание.&lt;br&gt;Вот код решения задачи:&lt;br&gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;&lt;br&gt;int GetString(char *str, int strsize)&lt;br&gt;&#123;&lt;br&gt;    char c;&lt;br&gt;    int i=0;&lt;br&gt;&lt;br&gt;    while ((c=getchar())!=&apos;&#092;n&apos;) &#123;&lt;br&gt;        if (i&amp;lt;=strsize-1)&#123;&lt;br&gt;            str&#091;i&#093;=c;&lt;br&gt;            i++;&lt;br&gt;        &#125;&lt;br&gt;    &#125;&lt;br&gt;    str&#091;i&#093;=&apos;&#092;0&apos;;</description>

<item>
    <title>Проблема новичка  (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#15</link>
    <pubDate>Sat, 09 Apr 2022 08:19:52 GMT</pubDate>
    <description>&amp;gt;&amp;gt; И ещё - никогда не используй глобальные переменные.&lt;br&gt;&amp;gt; А goto ему можно использовать?&lt;br&gt;&lt;br&gt;Это не некропост, просто пришлось подумать.&lt;br&gt;&lt;br&gt;Если не использовать heap, а всю память брать из stack, то exception реализуется очень просто - переставляешь stack и выполняешь goto.&lt;br&gt;&lt;br&gt;Походу malloc - крайне вредная функция. Это же COMMON BLOCK из FORTRAN.&lt;br&gt;</description>
</item>

<item>
    <title>Проблема новичка  (Конч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#14</link>
    <pubDate>Sun, 30 Jan 2022 13:51:57 GMT</pubDate>
    <description>&amp;gt; И ещё - никогда не используй глобальные переменные.&lt;br&gt;&lt;br&gt;А goto ему можно использовать?&lt;br&gt;</description>
</item>

<item>
    <title>Проблема новичка  (Конч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#13</link>
    <pubDate>Sun, 30 Jan 2022 13:50:18 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Обычно учат вводить данные прямо с консольки, со stdin, в теории это &lt;br&gt;&amp;gt;&amp;gt; должно чему-то научить, &lt;br&gt;&amp;gt; не чимунибуть, а работать с стдин. вы плять хеловордисты не умеете и &lt;br&gt;&amp;gt; элементарных консольных утилит написать, а уже передаете в поколение свою безмозглость. &lt;br&gt;&lt;br&gt;Не каждой программе суждено быть фильтром. &lt;br&gt;</description>
</item>

<item>
    <title>Проблема новичка  (Аноним)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#12</link>
    <pubDate>Sat, 22 Jan 2022 14:27:23 GMT</pubDate>
    <description>&amp;gt; Обычно учат вводить данные прямо с консольки, со stdin, в теории это &lt;br&gt;&amp;gt; должно чему-то научить, &lt;br&gt;&lt;br&gt;не чимунибуть, а работать с стдин. вы плять хеловордисты не умеете и элементарных консольных утилит написать, а уже передаете в поколение свою безмозглость. &lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Проблема новичка  (ACCA)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#11</link>
    <pubDate>Fri, 21 Jan 2022 20:55:53 GMT</pubDate>
    <description>&amp;gt; Первый: &quot;Как выглядит промышленный код?&quot; По задумке выношу реализацию в отдельные функции &lt;br&gt;&lt;br&gt;Промышленный код выглядит, как дерьмо, размазаное по потолку криворукими обезьянами.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; и в main оставляю только общую логику и организацию данных. На &lt;br&gt;&amp;gt; данном этапе на простых программах это избыточный код, но может быть &lt;br&gt;&amp;gt; такая привычка даст результаты в будущем?&lt;br&gt;&lt;br&gt;Результатом будет промышленный код. Писать нужно просто. Чем проще, тем лучше. Чтобы можно было с первого взгляда понять, что ты делаешь. Без углубления в общую логику и организацию данных.&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; Второй: &quot;Как правильно учиться?&quot; Где то прочел: пока не знаешь как устроенны &lt;br&gt;&amp;gt; и работают простые библиотечные функции не используй их, а пиши свои &lt;br&gt;&amp;gt; реализации&quot;. ПОДЧЕРКНУ: совет для стадии обучения. Мне он понравился вот и &lt;br&gt;&amp;gt; леплю как могу.&lt;br&gt;&lt;br&gt;Мы поняли.&lt;br&gt;Обрати внимание, что в моём примере использована только одна библиотечные функция (не считая печати) - strlen. И не написана ни одна новая.&lt;br&gt;&lt;br&gt;Всё остальное сделано &#091;за кадром&#093; средствами опера</description>
</item>

<item>
    <title>Проблема новичка  (Конч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#10</link>
    <pubDate>Tue, 18 Jan 2022 17:41:22 GMT</pubDate>
    <description>&amp;gt;затрагивают её поведение&lt;br&gt;&lt;br&gt;Могут затрагивать.&lt;br&gt;</description>
</item>

<item>
    <title>Проблема новичка  (Конч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#9</link>
    <pubDate>Tue, 18 Jan 2022 17:40:11 GMT</pubDate>
    <description>&amp;gt;На данном этапе на простых программах это избыточный код, но может быть такая привычка даст результаты в будущем?&lt;br&gt;&lt;br&gt;Изменения в конкретной функции затрагивают её поведение. Если ты кладёшь весь код в одну функцию и в ней много кода, при изменении может много что сломаться. Ну и лично у меня есть правило не класть в одну функцию кода больше, чем помещается на экране, правда вот, на си я обычно не пишу, на си бы я лимит строк мог бы и увеличить, возможно.&lt;br&gt;Просто если это читает другой человек, то для того, чтобы понять смысл функции, ему придётся мотать функцию туда-сюда. Если же она примерно умещается на экране (25-50 строк где-то - мой верхний лимит обычно), то и мотать не придётся.&lt;br&gt;&lt;br&gt;&amp;gt;Где то прочел: пока не знаешь как устроенны и работают простые библиотечные функции не используй их, а пиши свои реализации&lt;br&gt;&lt;br&gt;В принципе, совет хороший, вместе с алгоритмами учить, как делаются вот такие вот вещи. Жалко, что меня на такое не хватило, хотелось бы поизучать...&lt;br&gt;Но помимо этого стоит ещё читать чужой код. Я не </description>
</item>

<item>
    <title>Проблема новичка  (Конч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#8</link>
    <pubDate>Tue, 18 Jan 2022 17:28:08 GMT</pubDate>
    <description>Обычно учат вводить данные прямо с консольки, со stdin, в теории это должно чему-то научить, но по сути учит не умеющих в консольку людей ненавидеть консоль.&lt;br&gt;</description>
</item>

<item>
    <title>Проблема новичка  (Конч)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/10411.html#7</link>
    <pubDate>Tue, 18 Jan 2022 17:25:32 GMT</pubDate>
    <description>А вот я терпеть не могу стиль с &#123; на той же строке.&lt;br&gt;Но это ладно, тут звезда сразу после типа - может подбить новичка думать, что звезда - часть типа.&lt;br&gt;Да и по паре действий в каждом if внизу не особо нужны.&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
