Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Задание 4. Использование библиотечных функций stdio.h



Пример. Дан текстовый файл, строки которого содержат не более m (m <=20) символов. Считать строки и записать их в файл result.txt в порядке считывания, причем каждая строка должна быть «перевернута».

#include <iostream.h>

#include <stdio.h>

void main ()

{

char filename[255];

cout<<"Введите имя файла ";

cin>>filename;

FILE *fp=fopen(filename,"r"); //открываем файл для чтения

if (fp!=NULL) // Если файл успешно открыт

{

FILE * fp1=fopen("result.txt","w");//Открываем для файл

// для записи

char s[20];// определяем массив для хранения

//считанной строки

while(fgets(s,21,fp)) //Цикл считывания строк

{

int l=strlen(s);

if (s[l-1]!='\n') fputc(s[l-1],fp1);

/*цикл записи символов строки в обратном порядке*/

for (int j=l-2; j>=0; j--) fputc(s[j],fp1); //

fputc('\n',fp1);//запись символа новой строки

}

fclose(fp);

fclose (fp1);

cout<<"Файл записан";

}

else cout<<"Не существует такого файла!";

}

Заметим, что запись считанной строки s в файл происходит, начиная с символа с индексом strlen(s)‑2, так как последний символ строки это ноль-символ, а предпоследний - символ новой строки, который записывается в строку при ее чтении из файла функций fgets(). Однако исключение может составлять последняя строка файла, после которой в исходном файле может не стоять символа новой строки. Именно для последней строки в цикле введена проверка условия.

1. Дан текстовый фал, содержащий целые числа, разделенные пробелами. Определить является ли последовательность чисел, находящихся в файле, упорядоченной. В новый файл вывести сообщение о том, являются ли последовательность чисел в данном файле упорядоченной по убыванию или по возрастанию либо не упорядоченной, а также - среднее арифметическое всех чисел.

2. Дан файл, содержащий несколько строк. В новый файл переписать строки данного, вставляя символ ‘!’ после каждой строки, содержащей не более n символов. Если строка заканчивается знаком препинания заменить его на символ ‘!’.

3. Дан файл, содержащий несколько строк. Найти максимальную длину строки и вывести в новый файл все строки, имеющую такую длину.

4. Дан файл, содержащий несколько строк (причем строки не содержат пробелов). В новый файл записать строки данного, вставляя пробелы так, чтобы каждая строка имела длину 80 символов (пробелы должны быть расставлены равномерно).

5. Дан текстовый файл. Осуществить посимвольную чередующуюся печать файла в прямом и обратном направлении в новый файл. Например, если в файле было слово ЛУНА, то в результирующем файле должно быть слов ЛАУННУАЛ.

6. В исходном файле находится текст программы на языке С++. Создать файл, в который переписать содержимое исходного файла без однострочных комментариев.

7. Подсчитать количество пустых строк в текстовом файле. Вывести номера этих строк в новый файл.

8. Дан текстовый файл. Переписать его содержимое в новый файл, разбив строки таким образом, чтобы каждая строка либо оканчивалась точкой, либо содержала 40 литер, если среди них нет точки.

9. В текстовом файле подсчитать количество строк, которые начинаются и оканчиваются одной и той же буквой, вывести эти строки их количество в новый файл.

10. Дано два текстовых файла. Сравнить их содержимое и в новый файл записать либо номер первой строки, в которой они различаются, либо сообщение о том, что файлы идентичны.

11. Если в текущем каталоге имеется файл, tabl_umn.txt, то вывести на экран его содержимое. Если нет, то создать такой файл и записать туда таблицу умножения для чисел от 2 до 9.

12. Дан текстовый файл. Переписать его содержимое в новый файл, разбив строки таким образом, чтобы каждая строка имела n символов. Если в последней строке меньше, чем n символов, дополнить ее символами ‘!’.





Дата публикования: 2015-10-09; Прочитано: 237 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...