Работает отлично, за исключением пропуска первого символа в имени строки. Может ли кто-нибудь объяснить, что я не вижу?Программа C пропускает первый символ в строке
#include "stdio.h"
/*
*BN
*/
int main(void) {
// Disable stdout buffering
//setvbuf(stdout, NULL, _IONBF, 0);
struct data {
char name[40];
char street[50];
char city[30];
char state[3];
char zip[6];
float salary;
};
struct data p = {
scanf("%s %s %s %s %s %f", &p.name, &p.street, &p.city, &p.state, &p.zip, &p.salary)
};
printf(" Name:%s\n Street:%s\n City:%s\n State:%s\n Zipcode:%s\n Salary:%.2f", p.name, p.street, p.city, p.state, p.zip, p.salary);
return 0;
}
Потому что это не так, как вы инициализировать структуру. [Подробнее о 'scanf'] (http://en.cppreference.com/w/c/io/fscanf), обратите пристальное внимание на то, что он возвращает. –
Инициализация структуры неверна. check: http://stackoverflow.com/questions/330793/how-to-initialize-a-struct-in-accordance-with-c-programming-language-standards – Ehsan
Я согласен, что это не так, как структура инициализируется в c. Но может кто-нибудь объяснить, почему структура инициализируется правильно, кроме первого символа? – MayurK