Учу Си по книге Стивена Прата "С. Лекции и Упражнения. 5-е издание".
Так вот, выполняю упражнение для повторения.
Сама задача:
Напишите программу, которая использует вызов функции printf() для печати вашего имени и фамилии в одной строке, использует второй вызов функции printf(), чтобы напечатать ваше имя и фамилию в двух строках, и использует два вызова функции printf() для печати вашего имени и фамилии в одной строке. Выходные данные должны иметь следующий вид (при этом используются ваши персональные данные ): Иван Иванов
Переменные name
и name2
у вас декларированы как char
, а вы читаете строку - то есть выходите за границу аллоцированного под name/name2
пространства - наказание за это неотвратимо :)
Проблема в данный момент лежит глубже.
Откровенно скажу, не знаю, что и в какой последовательности написано в учебнике Стивена Прата, но Вам надо повнимательней почитать о машинном представлении переменных разных типов (обратите внимание на их размер в байтах), массивах, указателях и символьных строках в Си.
А затем стоит прочесть описания форматов в man 3 scanf
и man 3 printf
.
Обновление
Не нравится 30, сделайте 1000. А вот причем здесь тысячи имен?
Ведь новые имена будут попадать в те же переменные, затирая старые.
Если же Вам потребуется хранить их все, то в копии можно хранить ровно столько байт (ну, плюс еще немного для "служебной информации"), сколько занимает конкретное имя (сейчас пока не буду описывать как именно это можно делать).
А может Вам лучше что-то другое почитать? Например, http://ermak.cs.nstu.ru/cprog/HTML/index.htm
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Прошу, подскажите, мне нужно перенести весь текст элемента ListBox в другойЭтот код переносит почему-то только часть текста:
Задача очень распространенная, но не могу найти реализации на QT 5x