Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- #include <locale.h>
- int main(int argc, char **argv)
- {
- setlocale(LC_ALL, "Ru");
- FILE *file_ptr; // указатель на файл (задание 1.1)
- int N; // количество строк и символов в строках (задание 1.1)
- int count = 0; // для подсчета количества строк (задание 1.2)
- char ch; // для подсчета количества строк (задание 1.2)
- char text[50] = "0"; // строка для чтения из файла
- FILE *file_ptr1; // указатель на f2 (задание 1.4)
- int a; // для задания 1.3
- char tmp; // для задания 1.3
- FILE *file_ptr2; // вспомогательный файл для задания 1.3
- file_ptr = fopen("D:\\f1.txt", "w");
- if (file_ptr != NULL) {
- printf("Введите количество строк в файле и символов в них (не более 10): \n");
- scanf("%d", &N);
- if (N > 10) {
- do {
- printf("Нужно ввести число не более 10! Повторите ввод: \n");
- scanf("%d", &N);
- } while (N > 10);
- }
- printf("Введите строки не более %d символов.\n", N);
- for (int i = 0; i < N; i++)
- {
- printf("Введите %d-ю строку: \n", (i + 1));
- scanf("%s", text);
- if (strlen(text) > N) {
- do {
- printf("Нельзя вводить больше %d символов! Введите строку еще раз: \n", N);
- scanf("%s", text);
- } while (strlen(text) > N);
- fputs(text, file_ptr);
- }
- else
- {
- fputs(text, file_ptr);
- }
- fputs("\n", file_ptr);
- }
- fclose(file_ptr);
- // вывод числа строк в файле (задание 1.2)
- file_ptr = fopen("D:\\f1.txt", "r");
- while ((ch = fgetc(file_ptr)) != EOF) {
- if (ch == '\n')
- ++count;
- }
- printf("Количество строк в файле: %d\n", count);
- fclose(file_ptr);
- // реверс строк в файле (задание 1.3)
- file_ptr = fopen("D:\\f1.txt", "r");
- file_ptr2 = fopen("D:\\f3.txt", "w");
- while (fgets(text, 50, file_ptr)) {
- count = strlen(text)-1;
- for (a = 0; a < count / 2; a++) {
- tmp = text[a];
- text[a] = text[count - 1 - a];
- text[count - 1 - a] = tmp;
- }
- fputs(text, file_ptr2);
- }
- fclose(file_ptr);
- fclose(file_ptr2);
- // копирование из вспомогательного файла в исходный
- file_ptr = fopen("D:\\f1.txt", "w");
- file_ptr2 = fopen("D:\\f3.txt", "r");
- if (file_ptr2 != NULL) {
- while (fgets(text, 50, file_ptr2)) {
- fputs(text, file_ptr);
- }
- }
- else {
- printf("Невозможно открыть файл f3\n");
- return 1;
- }
- // вывод в f2 (задание 1.4)
- file_ptr1 = fopen("D:\\f2.txt", "w");
- /*fseek(file_ptr, 0, SEEK_SET);
- if (file_ptr1 != NULL) {
- while (fgets(text, 50, file_ptr)) {
- fseek(file_ptr1, -(count1*N), SEEK_SET);
- count1++;
- fputs(text, file_ptr1);
- }
- }
- else {
- printf("Невозможно открыть файл f2\n");
- return 1;
- }*/
- // вывод содержимого f2 на экран (задание 1.5)
- /*fseek(file_ptr1, 0, SEEK_SET);
- while (fgets(text, 50, file_ptr1)) {
- printf("%s", text);
- }*/
- fclose(file_ptr);
- fclose(file_ptr1);
- fclose(file_ptr2);
- _getch();
- return 0;
- }
- else {
- printf("Невозможно открыть файл f1\n");
- return 1;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement