Не верный ввод в структуру или вывод QT - C (СИ)
Формулировка задачи:
В общем вводит 6 значений, потом 5, выводит какую то чушь.
#include <stdio.h>
#include <windows.h>
struct WORKER
{
char *fam,*name,*lastname,*dol;
int year;
};
int main(void)
{
struct WORKER mas[2];
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
for (int i=0;i<2;i++)
{
scanf("%s\n",&mas[i].fam);
scanf("%s\n",&mas[i].name);
scanf("%s\n",&mas[i].lastname);
scanf("%s\n",&mas[i].dol);
scanf("%d\n",&mas[i].year);
printf("____");
}
system("cls");
for (int i=0;i<2;i++)
{
printf("%s %s %s %s \n%d\n",&mas[i].fam,&mas[i].name,&mas[i].lastname,&mas[i].dol,&mas[i].year);
}
return 0;
}Решение задачи: «Не верный ввод в структуру или вывод QT»
textual
Листинг программы
#include <stdio.h>
#include <windows.h>
struct WORKER
{
char fam[30],name[30],lastname[30],dol[30];
int year;
};
int main(void)
{
int i;
struct WORKER mas[2];
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
for (i=0;i<2;i++)
{
scanf("%s",mas[i].fam);
scanf("%s",mas[i].name);
scanf("%s",mas[i].lastname);
scanf("%s",mas[i].dol);
scanf("%dn",&mas[i].year);
printf("____\n");
}
system("cls");
for (i=0;i<2;i++)
{
printf("%s %s %s %s \n%d\n",mas[i].fam,mas[i].name,mas[i].lastname,mas[i].dol,mas[i].year);
}
system("pause");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h и windows.h.
- Объявление структуры WORKER с полями: fam, name, lastname, dol, year.
- Объявление переменной i типа int для использования в цикле.
- Объявление массива структур WORKER типа mas[2].
- Установка кодировки консоли на 1251 с помощью функции SetConsoleCP.
- Ввод данных с клавиатуры с использованием цикла for и функции scanf в поля структуры WORKER.
- Вывод данных из полей структуры WORKER с использованием цикла for и функции printf.
- Очистка консоли с помощью функции system(
cls). - Вывод данных из полей структуры WORKER с использованием цикла for и функции printf.
- Ожидание нажатия клавиши с помощью функции system(
pause). - Возврат 0, что означает успешный конец работы программы.