Сбой чтения строки из структуры при работе системы ("CLS") - PullRequest
0 голосов
/ 06 ноября 2018

Я работаю над кодом для записи и чтения информации из структуры, которая имеет переменную типа указателя, и до сих пор все работает хорошо, но когда я пытаюсь очистить экран с помощью системы ("CLS"); программа завершается, но это происходит только после чтения строки persona [cx] .nombre.

Я пытался использовать разные способы чтения строки (getchar (), scanf ("% s") и scanf ("% c)), но это, похоже, не помогает. Я думаю, что эта проблема связана с переменная указателя, потому что указатели и структуры являются новыми для меня, так что, возможно, я что-то упустил.

вот код, который я сделал до сих пор:

    struct datos{
        char nombre[30];
        int edad;
        char sexo;
    } *persona;

    void arreee(int *);
    int main(){
        int me = 0;
        persona = malloc(sizeof(char[1]));
        printf("\n  Repeticiones: ");
        scanf("%d", &me);
        fflush(stdin);
        persona = realloc(persona, me);
        arreee(&me);
        printf("\n.  .  .\nDone! %d\n.  .  .\n>", me);
        getchar();
        return 0;
    }

    // funciones

    void arreee(int *e){
        int cx, i;

        for(cx = 0; cx < *e; cx++)
        {
            printf("\nsexo? m/f\n> ");
            scanf("%1c", &persona[cx].sexo);
            fflush(stdin);
            printf("\nnombre> ");
            fgets(persona[cx].nombre, 30, stdin);
            fflush(stdin);
            printf("\nedad> ");
            scanf("%d", &persona[cx].edad);
            fflush(stdin);
            system("cls");
        }

        for(i = 0; i < *e; i++)
        {
            printf("Sexo %c    Edad %d     Nombre %s", persona[i].sexo, persona[i].edad, persona[i].nombre);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...