#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_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);
fputs("\n", file_ptr);
}
else
{
fputs(text, file_ptr);
fputs("\n", file_ptr);
}
}
// вывод числа строк в файле (задание 1.2)
fseek(file_ptr, 0, SEEK_SET);
while ((ch = fgetc(file_ptr)) != EOF) {
if (ch == '\n')
++count;
}
printf("Количество строк в файле: %d\n", count);
// реверс строк в файле (задание 1.3)
fseek(file_ptr, 0, SEEK_SET);
while (fgets(text, 50, file_ptr)) {
_strrev(text);
fseek(file_ptr, 0, SEEK_SET);
fputs(text, file_ptr);
fputs("\n", file_ptr);
fseek(file_ptr, 0, SEEK_END);
}
// чтение файла
//fseek(file_ptr, 0, SEEK_SET);
//while (fgets(text, 50, file_ptr)) {
// printf("%s", text);
//}
fclose(file_ptr);
_getch();
return 0;
}
else {
printf("Невозможно открыть файл\n");
return 1;
}
}</code lang="cpp"></spoiler>