Untitled
unknown
plain_text
8 months ago
2.4 kB
2
Indexable
Never
#include <stdio.h> #include <stdlib.h> #include <string.h> char filePathGlobal[256] = ""; // Глобальная переменная для хранения пути к файлу int readCount = 0; // Счетчик количества выполненных операций чтения void readFile(const char *filePath) { FILE *file = fopen(filePath, "r"); if (file == NULL) { printf("n/a\n"); return; } char ch; int isEmpty = 1; while ((ch = fgetc(file)) != EOF) { isEmpty = 0; putchar(ch); } fclose(file); if (isEmpty) { printf("n/a\n"); } printf("\n"); // Перенос строки после вывода содержимого файла } void appendToFile(const char *filePath) { printf("Enter text to append (text will be saved): "); scanf("%s", filePathGlobal); // Для чтения строки с пробелами используйте fgets и очистите буфер ввода FILE *file = fopen(filePath, "a"); if (file == NULL) { printf("n/a\n"); return; } fprintf(file, "%s\n", filePathGlobal); fclose(file); } int main() { while (1) { printf("1. Enter file path\n"); printf("2. Append text to file\n"); printf("-1. Exit and display file content\n"); printf("Choose an option: "); int choice; scanf("%d", &choice); if (choice == -1) { for (int i = 0; i < readCount; i++) { if (strlen(filePathGlobal) != 0) { readFile(filePathGlobal); } else { printf("n/a\n"); break; } } break; } switch (choice) { case 1: case 2: // Увеличиваем счетчик для обеих операций, кроме выхода readCount++; if (choice == 1) { printf("Enter file path: "); scanf("%s", filePathGlobal); } else if (choice == 2 && strlen(filePathGlobal) != 0) { appendToFile(filePathGlobal); } else { printf("n/a\n"); } break; default: printf("n/a\n"); break; } } return 0; }
Leave a Comment