Advertisement
Qellex

7.1 - 18v

Mar 21st, 2022
1,091
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <Windows.h>
  3. #include <string.h>
  4.  
  5. #define M 256
  6.  
  7. int main() {
  8.     SetConsoleCP(1251);
  9.     SetConsoleOutputCP(1251);
  10.     // иницилизируем файлы
  11.     FILE* list1; FILE* list2; FILE* list3;
  12.  
  13.     if (fopen_s(&list1, "list1.txt", "r") != 0) {
  14.         printf("Ошибка открытия файла!\n");
  15.         system("pause");
  16.         return 0;
  17.     }
  18.  
  19.     if (fopen_s(&list2, "list2.txt", "r") != 0) {
  20.         printf("Ошибка открытия файла!\n");
  21.         system("pause");
  22.         return 0;
  23.     }
  24.  
  25.     if (fopen_s(&list3, "list3.txt", "w") != 0) {
  26.         printf("Ошибка открытия файла!\n");
  27.         system("pause");
  28.         return 0;
  29.     }
  30.  
  31.  
  32.     int art, count, art_tu, change; // артикул, кол-во, артикул со второго файал, изменение
  33.     while (fscanf_s(list1, "%d%d", &art, &count) != EOF) { // пока не дойдем до конца
  34.             // cчитываем строки из файлов
  35.         while (fscanf_s(list2, "%d%d", &art_tu, &change) != EOF) { // пока не дойдем до конца
  36.                 // cчитываем строки из файлов
  37.             if (art == art_tu) // если артикул одиннаковый
  38.                 count += change; // меняем кол-во
  39.         }
  40.         fprintf(list3, "%d %d\n", art, count); // записываем результат в 3 файл
  41.         rewind(list2); // переходим в начало файла
  42.     }
  43.  
  44.  
  45.     if (fclose(list1) != 0)
  46.         printf("Ошибка закрытия файла!\n");
  47.     if (fclose(list2) != 0)
  48.         printf("Ошибка закрытия файла!\n");
  49.     if (fclose(list3) != 0)
  50.         printf("Ошибка закрытия файла!\n");
  51.  
  52.     system("pause");
  53.     return 0;
  54. }
  55.  
  56. /*
  57. Даны два текстовых файла. В первом файле записаны сведения о
  58. наличии на складе товаров (в каждой строке указываются
  59. инвентарный номер товара и его количество в штуках). Во втором
  60. файле записаны сведения о том, на сколько увеличилось или
  61. уменьшилось количество определенного товара (в каждой строке
  62. указываются инвентарный номер товара и количество
  63. поступивших или израсходованных единиц товара). Создать
  64. третий текстовый файл, полученный обновлением первого файла
  65. на основе данных из второго.
  66. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement