2013-12-03 5 views
-1

область действия этой функции - получение входных данных и сохранение в файл. просто право? но я не могу найти файл после ввода с консоли. пожалуйста помогите !сохранение в файл в c

void addpassenger() 
{ 
    int size = sizeof(struct passenger); 
    struct passenger newPassenger; 

    printf("Name: "); 
    gets(newPassenger.name); 

    printf("Surname: "); 
    gets(newPassenger.surname); 

    printf("ID card No: "); 
    gets(newPassenger.idCard); 

    printf("Nationality: "); 
    gets(newPassenger.Nationality); 

    printf("Telephone/Mobile: "); 
    scanf("%d",&newPassenger.phone); 

    FILE *pt =fopen("passenger.dat","a"); 
    fwrite(&newPassenger,size,1,pt); 
    fclose(pt); 

} 
+0

обычно рабочий каталог не там, где ваш исполняемый. лучше всего явно указать его или просто посмотреть, где он находится. –

+1

Поскольку вы указываете только имя файла (а не полный путь), файл будет находиться в [* текущем рабочем каталоге *] (http://en.wikipedia.org/wiki/Working_directory) исполняемого файла. Как правило, это то, откуда вы его запускали. –

ответ

-1

FWRITE - второй и третий аргументы вы прошли ошибаетесь ..

Второй аргумент размер - размер в байтах каждого элемента должны быть записаны. size_t - это неподписанный интегральный тип.

Третий аргумент - количество элементов, каждый из которых имеет размер байта размера. size_t является беззнаковым интегрального типа

Так что ваши аргументы должны быть

fwrite(&newPassenger,sizeof(int),size,pt); 
Смежные вопросы