Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2014, 19:53   #1
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию Но таблица рисуется криво.

Подскажите, плиз. как правильно сделать, что бы таблица рисовалась правильно?
Никак не получается. Раньше работоло, но с scanf'ом. Заменил его на fgets, форумачанин подсказал, и никак(.
Код:
system("cls");
	printf("Enter the name of the first species...");
	fgets(list[1].name,11,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the group of the first species...");
	fgets(list[1].grp,2,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the location of the first species...");
	fgets(list[1].lctn,13,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the number of the first species...");
	scanf("%d",&list[1].cnt);fflush(stdin);fflush(stdout);
	printf("Enter the name of the second species...");
	fgets(list[2].name,11,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the group of the second species...");
	fgets(list[2].grp,2,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the location of the second species...");
	fgets(list[2].lctn,13,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the number of the second species...");
	scanf("%d",&list[2].cnt);fflush(stdin);fflush(stdout);
	printf("Enter the name of the third species...");
	fgets(list[3].name,11,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the group of the third species...");
	fgets(list[3].grp,2,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the location of the third species...");
	fgets(list[3].lctn,13,stdin);fflush(stdin);fflush(stdout);
	printf("Enter the number of the third species...");
	scanf("%d",&list[3].cnt);fflush(stdin);fflush(stdout);
	
	
	system("cls");
    printf("-------------------------------------------\n");
    printf("|    Some species of antelope             |\n");
    printf("-------------------------------------------\n");
    printf("|  Name      |Group| Location  |  Amount  |\n");
    printf("-------------------------------------------\n");
    printf("|%s|  %s  |%s|   %-6d |\n",list[1].name,list[1].grp,list[1].lctn,list[1].cnt);
    printf("|%s|  %s  |%s|   %-6d |\n",list[2].name,list[2].grp,list[2].lctn,list[2].cnt);
    printf("|%s|  %s  |%s|   %-6d |\n",list[3].name,list[3].grp,list[3].lctn,list[3].cnt);
    printf("-------------------------------------------\n");
    printf("|  Groups:A - real antelopes ,            |\n");
    printf("|  B - cow antelope, H - horse antelope   |\n");
    printf("-------------------------------------------\n");
Спасибо.
guroDragon вне форума Ответить с цитированием
Старый 02.04.2014, 21:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Раньше работоло, но с scanf'ом.
Чет я не понял каким боком функции ввода данных к кривому виду таблицы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.04.2014, 21:32   #3
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Чет я не понял каким боком функции ввода данных к кривому виду таблицы.
Раньше, когда я использовал scanf, вместо fgets, всё работало. НО добавилась задача проверки на длину, так как какждый раз проверять было влом (ну или фу-ю сделать для этого), я взял fgets. Таблица потеряла вид :-(
guroDragon вне форума Ответить с цитированием
Старый 02.04.2014, 21:49   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Телепатирую. Вместо %s нужно что-то типа %10s
т.е. указывать длину до выравнивания для выводимых строк.
Угадал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.04.2014, 10:19   #5
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Хм... Телепатирую. Вместо %s нужно что-то типа %10s
т.е. указывать длину до выравнивания для выводимых строк.
Угадал?
Не угадала) Я это убрал как раз в надежде, что всё заработает)
НО нет. Всё криво. Связано ли это с тем, что, возможно, fgets в конце строки добавляет символ перескока на новую строку?
guroDragon вне форума Ответить с цитированием
Старый 03.04.2014, 11:36   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Я не она. и да, возможно и такое, хотя и не в курсе как работает эта функция.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.04.2014, 11:44   #7
guroDragon
Пользователь
 
Регистрация: 09.09.2013
Сообщений: 83
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Я не она. и да, возможно и такое, хотя и не в курсе как работает эта функция.
Сорри, мискликнул)
guroDragon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно рисуется фрактал Nostia Общие вопросы по Java, Java SE, Kotlin 5 23.12.2012 14:46
Рисуется хвост за текстом (TextOut) artemavd Общие вопросы Delphi 19 17.05.2012 10:29
Не рисуется битмап Jugger Win Api 2 03.04.2012 15:15
Неправильно рисуется график Gamst Общие вопросы Delphi 0 02.02.2012 20:49
Не рисуется спрайт в Delphix DOLBY Мультимедиа в Delphi 0 01.04.2009 23:09