Загрузка...

Как реализовать ввод с файла

Тема в разделе C/C++ создана пользователем EV1 25 май 2020. 181 просмотр

Загрузка...
  1. EV1
    EV1 Автор темы 25 май 2020 Дизайн - zelenka.guru/threads/227119/ 796 5 июл 2017
    Код
    #include "conio.h"
    #include <stdio.h>
    #include <stdlib.h>
    #include <fstream>
    #include <iostream>
    #define CRT_SECURE_NO_WARNINGS
    using namespace std;

    void vvod(int* x, int n)
    {
    int i;
    int z;
    printf("1 - Cлучайный ввод. 2 - Ввод с клавиатуры\n");
    back: scanf_s("%d", &z);
    if (z == 1)
    {
    int i = 0;
    for (int i = 0; i < n; i++)
    {
    *(x + i) = x[i];
    *(x + i) = rand() % 10;
    }

    }
    else if (z == 2)
    {
    printf("Введите число!\n");
    for (int i = 0; i < n; i++)
    scanf_s("%d", &x[i]);
    }
    else {
    printf("Ошибка ввода повторите!\n");
    goto back;
    }
    }
    void sum2(int* x, int n, int sm, int aref, int sumnot)
    {
    int i;
    for (i = 0; i < n; i++)
    {
    sm = sm + *(x + i);
    }
    aref = sm / n;
    for (i = 0; i < n; i++)
    {
    if (*(x + i) < aref)
    {
    sumnot = sumnot + *(x + i);
    }
    }

    printf("-----------------------------------\n");
    printf("Арефметическое = %d\n", aref);
    printf("Сумма = %d\n", sm);
    printf("Сумма ниже арефметического = %d\n", sumnot);
    printf("-----------------------------------");
    }

    // функция нахождения максимального значения и его номера
    void printsave(int* x, int n)
    {
    int z;
    printf("1 - Вывести на экран. 2 - Сохранить в файл\n");
    back: scanf_s("%d", &z);
    if (z == 1)
    {
    printf("\n");
    int i;
    for (i = 0; i < n; i++)
    {
    printf("%d; ", *(x + i));
    }
    printf("\n");
    }
    if (z == 2)
    {
    string path = "saveall.txt";
    ofstream you(path);
    printf("\n \n");
    int i;
    for (i = 0; i < n; i++)
    {
    you << *(x + i) << ";"; // сумма всех элементов массива
    }
    you.close();
    printf("Файл сохранен\n");
    }
    else {
    printf("Ошибка ввода повторите!\n");
    goto back;
    }
    }
    void ripmain()
    {
    int sm = 0;
    int n;
    int ref = 0;
    int sum = 0;
    int a[1600];
    int sumnot;
    printf("Введите n\n");
    scanf_s("%d", &n);
    vvod(&a[0], n);
    printsave(&a[0], n);
    sum2(&a[0], n, sm, ref, sum);
    }
    Есть ввод из рандома, ручной ввод, а еще нужно реализовать чтобы из файла был ввод, но я не понимаю как:zachto: Вывод я какой то прикрутил, а как ввод сделать я хз
     
  2. EV1
    EV1 Автор темы 25 май 2020 Дизайн - zelenka.guru/threads/227119/ 796 5 июл 2017
  3. Leha
    Leha 25 май 2020 1950 7 апр 2018
  4. EV1
    EV1 Автор темы 26 май 2020 Дизайн - zelenka.guru/threads/227119/ 796 5 июл 2017
    мне сказали делать через f_open, но такой бед

    FILE* fp;
    fopen_s(&fp, "file55.txt", "r");
    while (!feof(fp))
    {
    {
    for (i = 0; i < n; i++)
    {
    fscanf_s(fp, "%d", &*(x+ i));
    }
    }
    }
    fclose(fp);
    }
    Если ввожу число сколько символов в файле норм, если ввожу 5, то он берет 5 последних чисел
    например 1 2 3 4 5 6 7 8 9 10 ( будет выведено 6 7 8 9 10):dynyl
     
  5. XELOR_inactive3218993
    XELOR_inactive3218993 29 май 2020 Делаю проги, писать в лс форума 128 26 апр 2020
    Через freopen
     
Top