• Как вывести элементы из файла с проверкой условия?

    @jillene Автор вопроса
    Сделал!!!

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
     
    #define M 2 // M plus 1 is equals to number of structres
     
    /* run this program using the console pauser or add your own getch, system("pause") or input loop */
     
        FILE *file;
        struct Person {
            char name[20]; 
            char gender[20]; 
            unsigned age; 
        };
        struct Person SinglePerson[1];
        char i=0;
        char counter = 0;
     
    void InputFromKeyboard () {
        file = fopen("Input.txt", "w");
        while(scanf("%s%s%u", SinglePerson[i].name, SinglePerson[i].gender, &(SinglePerson[i].age)) == 3 && i <= M) {
            fprintf(file, "%s %s %u\n", SinglePerson[i].name, SinglePerson[i].gender, SinglePerson[i].age); 
            counter++;
            i++;
            if (i == M+1) {
                break;
            }
        }
        fclose(file);
    };
     
    void OutputToFile () {
        file = fopen("Output.txt", "w");
        for (i = 0; i < counter; i++) {
            if (strcmp(SinglePerson[i].gender, "Male") == 0) {
                fprintf(file, "%s %s %u\n", SinglePerson[i].name, SinglePerson[i].gender, SinglePerson[i].age); 
            }
        }
        fclose(file);
    }
     
    void OutputToScreen () {
        file = fopen("Output.txt", "r");
        for (i = 0; i < counter; i++) {
            if (strcmp(SinglePerson[i].gender, "Male") == 0) {
                printf("%s %s %u\n", SinglePerson[i].name, SinglePerson[i].gender, SinglePerson[i].age); 
            }
        }
        fclose(file);
    }
     
    int main(int argc, char *argv[]) {
        InputFromKeyboard();
        OutputToFile();
        OutputToScreen();
        return 0;
    }
    Ответ написан
    Комментировать