Проблема с функцией для печати значений внутри моего файла

#c #structure

#c #структура

Вопрос:

У меня проблема с печатью значений внутри файла, когда я отображаю все значения внутри моего файла, они отображаются по одному рядом друг с другом, а не вниз.

Вот мой код:

 void listaPacientes(int opcion)
{
FILE *fp;
struct paciente p;

fp=fopen(fname,"rb");

printf("n========================================================nn");
printf("tt Lista de pacientesnn");
printf("========================================================nn");

printf("NombretApellidotTelefonotCama_IDnn");

while(1)
{
fread(amp;p,sizeof(p),1,fp);

if(feof(fp))
{
break;
}
printf("%st",p.nombre);
printf("%st",p.apellido);
printf("%st",p.telefono);
printf("%dt",p.cama_id);



}
printf("========================================================nn");

fclose(fp);
}
  

введите описание изображения здесь

Ответ №1:

Просто измените final t на n в printf("%dt",p.cama_id);

 void listaPacientes(int opcion)
{
    FILE *fp;
    struct paciente p;

    fp=fopen(fname,"rb");

    printf("n========================================================nn");
    printf("tt Lista de pacientesnn");
    printf("========================================================nn");

    printf("NombretApellidotTelefonotCama_IDnn");

    while(1)
    {
        fread(amp;p,sizeof(p),1,fp);

        if(feof(fp))
        {
            break;
        }
        printf("%st",p.nombre);
        printf("%st",p.apellido);
        printf("%st",p.telefono);
        printf("%dn",p.cama_id); //<- here the modification



    }
    printf("========================================================nn");

    fclose(fp);
}
  

Ответ №2:

Вы просто пропускаете новую строку внутри цикла. Это можно легко решить, добавив puts("n") (или printf("n") , если вы действительно хотите).

Обратите внимание, что вы также можете просто объединить все в один printf вызов, который заканчивается на новой строке:

 printf("%st%st%st%dn", p.nombre, p.apellido, p.telefono, p.cama_id);