Написать программу которая считывает текст из файла и выводит на экран только предложения
Задание 1
Написать программу, которая считывает из текстового файла три предложения и выводит их, переставив слова в обратном порядке.
Задание 2
Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово.
Задание 3
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа.
Задание 4
Написать программу, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв.
Задание 5
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова.
Задание 6
Написать программу, которая считывает текст из файла и выводит на экран слова, после которых стоит запятая.
Задание 7
Написать программу, которая считывает текст из файла и определяет, сколько в нем слов, содержащих менее четырех букв.
Задание 8
Написать программу, которая считывает текст из файла и выводит на экран только цитаты, то есть предложения, заключенные в кавычки, которые могут занимать несколько строк.
Задание 9
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.
Задание 10
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы.
Задание 11
Написать программу, которая считывает текст из файла и выводит на экран только строки, не содержащие двузначных чисел.
Задание 12
Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы.
Задание 13
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с гласной буквы, на прописную.
Задание 14
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова «ноль», «один». «девять», начиная каждое предложение с новой строки.
Задание 15
Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте.
Задание 16 (повышенная сложность)
Написать программу, которая считывает Текст из файла и выводит на экран сначала вопросительные, а затем восклицательные предложения.
Задание 17
Написать программу, которая считывает текст из файла и выводит его на экран, после каждого предложения добавляя, сколько раз встретилось в нем введенное с клавиатуры слово.
Задание 18
Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные.
Задание 19
Написать программу, которая считывает текст из файла и выводит на экран предложения, содержащие максимальное количество знаков пунктуации.
Добавлено через 32 минуты
тоесть найти предложения с данным словом?
Добавлено через 3 минуты
как можно текст на предложения разбить?
Добавлено через 1 минуту
fscanf считает символ пробела окончанием строки,а мне нужно чтобы окончаниеем строки считались либо точка либо! либо?
Помощь в написании контрольных, курсовых и дипломных работ здесь
Считывание текста из файла и вывод на экран только предложения, содержащие введенное с клавиатуры слово
Здравствуйте.Если у кого-то будет свободная минутка помогите пожалуйста. Было дано задание.
Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово
У меня тут проблемка возникла! Осталась последняя неделя - ни как не могу написать вот эти проги.
Cчитать текст и вывести на экран только предложения, содержащие введенное с клавиатуры слово.
Написать программу, которая считывает текст и выводит на экран только предложения, содержащие.
ругается на эту строчку
Добавлено через 4 минуты
[C++ Error] Unit1.cpp(14): E2285 Could not find a match for 'ifstream::basic_ifstream(string)' а как сделать чтобы она все предложения выводила с заданным словом?
Считать текст из файла и вывести на экран только предложения, которые содержат введенное с клавиатуры слово
Собственно возникла проблемка при решении данного задания. С++ Нужно считать текст из файла и.
Считать текст из файла и вывести на экран только предложения, содержащие введённое с клавиатуры слово
Написать программу, которая считывает текст из файла и выводит на экран только предложения.
Вывести на экран предложения из файла, которые содержат введенное с клавиатуры слово
Написать программу , которая считывает текст из файла и выводит на экран только предложения.
Найти предложения, содержащие введенное с клавиатуры слово
Помогите написать программу : написать программу, которая считывает текст с клавиатуры и выводит на.
Введите маску для выбора всех файлов, имя которых состоит из двух символов, а расширение - из четерёх:
Средства взаимодействия человека и компьютера называют … аппаратно-программным интерфейсом программным интерфейсом аппаратным интерфейсом пользователь … ским интерфейсом
Классификация это А)подмножество объектов,имеющих общие признаки б)признаки,по которым один класс отличается от другого в)деление множество объектов … на классы
Урожай Дядя Саша с сыном Колей копают картошку. Урожай выдался, как всегда, отменным, и они накопали nn мешков. Дядя Саша пригнал грузовичок в который … может поместиться не более aa мешков картошки, а в Колин грузовичок поместится не более bb мешков. Урожай они хотят поделить поровну. Если количество мешков не будет делится на 2, то лишний мешок на правах старшего заберет дядя Саша. Вместе с тем, никто не сможет забрать мешков больше, чем поместится в его грузовик. И конечно же они не оставят ни одного мешка на поле. Напишите программу, которая определит, сколько мешков увезет дядя Саша, а сколько Коля. Формат входных данных На вход подаются натуральные числа nn, aa и bb по одному числу в строке. Чиcла не превосходят 1000. Гарантируется, что n\leq a+bn≤a+b. Формат выходных данных Программа должна вывести в одной строке через пробел два числа — количество мешков, которое увезут дядя Саша и Коля на своих грузовичках. Методика проверки и пояснение к тестам Программа проверяется на 10 тестах. Прохождение каждого теста оценивается в 2 балла. Тесты из условия задачи при проверке не используются. В первом тесте 59 мешков будут разделены почти поровну — 30 мешков дяде Саше и 29 — Коле. Во втором тесте Коля не сможет увезти причитающиеся ему 29 мешков и отдаст лишнее дяде Саше. Sample Input 1: 59 35 40 Sample Output 1: 30 29 Sample Input 2: 59 41 25 Sample Output 2: 34 25 Ответ(Python): n = int(input()) a = int(input()) b = int(input()) k = b if n // 2 > b else n // 2 s = a if n - k > a else n - k k = k if s + k == n else n - s print(s, k)
ДАЮ 85 БАЛОВ Построение таблиц истинности для логических выражений
Задано полное имя файла C:\Users\Desktop\Инструкция.docx Запишите имя каталога, в котором находится этот файл:
Уроки программирования, алгоритмы, статьи, исходники, примеры программ и полезные советы
Программа, которая выводит на экран содержимое файла
Сначала необходимо с помощью директивы using подключить пространство имен System.IO (в нем описан необходимый для данной задачи класс).
Если указать просто имя файла без пути к нему (как в данном случае textfile.txt), то файл необходимо расположить в каталоге \bin\Debug\ вашего проекта. Если текстовый файл располагается в какой-либо другой папке, то необходимо указать к нему полный путь.
Объявим строковую переменную s. Она нам понадобится для хранения считанной строки.
Далее напишем такой код:
В цикле while происходит считывание файла построчно с помощью метода класса StreamReader ReadLine(), считанная строка присваивается строковой переменной s. С помощью оператора Console.WriteLine(s) считанная строка выводится в консоль.
Цикл while продолжается до тех пор, пока не будет достигнут конец файла.
Свойство EndOfStream указывается достигнут ли конец файла. Оно имеет логическое значение true, если конец файла достигнут, и логическое значение false в противном случае.
Последнее, что нужно сделать, это закрыть считывающий символьный поток из файла.
В итоге у вас должен получится следующий код:
Давайте протестируем написанную программу. Для этого запустим её. Нажмём в Visual Studio сочетание клавиш Ctrl + F5 (чтобы консоль не закрылась сразу после выполнения программы).
Как вы видите текст из файла успешно вывелся на экран компьютера в консоль.
Если вы хотите скачать исходник программы, написанной в этом уроке, то нажмите на кнопку ниже.
Программа, которая выводит на экран содержимое файла5 комментария(ев) к статье “ Программа, которая выводит на экран содержимое файла ”
Здравствуйте! Запустила Вашу программу. Вместо букв русского алфавита появляются вопросительные знаки. Почему так происходит и что делать?
Здравствуйте! Проблема в кодировке.
Попробуйте использовать следующую строку:
StreamReader sr = new StreamReader(“textfile.txt”, Encoding.UTF8);
вместо StreamReader sr = new StreamReader(“textfile.txt”);
Если не сработает, то поменяйте UTF8 на какое-либо из следующих значений: ASCII, Default, Unicode, UTF7 или UTF32.
Функция добавляет s2 к s1 и возвращает s1. В конец результирующей строки добавляется нуль-символ.
char *strchr(char *s, int ch);
Ищет символ в строке
Функция возвращает указатель на первое вхождение символа ch в строку s, если его нет, то возвращается NULL.
int strcmp(char *s1, char *s2);
Функция сравнивает строки и возвращает отрицательное (если s1 меньше s2), нулевое (если s1 равно s2) или положительное (если s1 больше s2) значение.
char *strcpy(char *s1, char *s2);
Копирует одну строку в другую
Функция копирует s2 в s1 и возвращает s1.
char *strncpy(char *s1, char *s2, size_t n);
Копирует первые n символов одной строки в другую
Функция копирует не более n символов из s2 в s1 и возвращает s1. Если длина исходной строки превышает или равна n, нуль-символ в конец строки s1 не добавляется. В противном случае строка дополняется нуль-символами до n-го символа. Если строки перекрываются, поведение не определено.
char *strrchr(char *s,int ch);
Ищет символ в строке
Функция возвращает указатель на первое вхождение символа ch в строку s справа, если его нет, возвращает NULL.
char *strstr(char *s1, char *s2);
Ищет подстроку в строке
Функция выполняет поиск первого вхождения подстроки s2 в строку s1. В случае удачного поиска, возвращает указатель на элемент из s1, с которого начинается s2, и NULL в противном случае.
double strtod(const char *str, char **end);
Преобразует строку в число
Функция преобразует строку символов в числовое значение и возвращает его. При переполнении возвращает +/-HUGE_VAL При невозможности выполнить преобразование или исчезновении порядка возвращает 0. В обоих последних случаях errno устанавливается в ERANGE. end указывает на символ, на котором преобразование завершается.
char *strtok(char *s1, char *s2);
Выделяет из строки лексемы
Функция возвращает следующую лексему из s1, отделенную любым из символов из набора s2.
1.4.2<ctype.h> (<cctype>) – функции классификации и преобразования типов
int tolower(int ch);
Возвращает символ в нижнем регистре
Функция получает параметр ch и возвращает его в нижнем регистре. В параметре ch используется только младший байт.
int toupper(int ch);
Возвращает символ в верхнем регистре
Функция получает параметр ch и возвращает его в верхнем регистре. В параметре ch используется только младший байт.
int isalnum(int ch);
Проверяет, является ли символ буквой или цифрой
Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является буквой или цифрой, или false в противном случае.
int isalpha(int ch);
Проверяет, является ли символ буквой
Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является буквой, или false в противном случае.
int isdigit(int ch);
Проверяет, является ли символ цифрой
Функция выделяет младший байт параметра ch и возвращает значение true, если символ ch является цифрой, или false в противном случае.
2) Работа с файлами в С++
Файл – именованный набор байтов, который может быть сохранен на некотором накопителе. Под файлом понимается некоторая последовательность байтов, которая имеет своё, уникальное имя, например файл.txt. В одной директории не могут находиться файлы с одинаковыми именами. Под именем файла понимается не только его название, но и расширение, например: file.txt и file.dat—разные файлы, хоть и имеют одинаковые названия. Существует такое понятие, как полное имя файла – это полный адрес к директории файла с указанием имени файла, например: D:\docs\file.txt. Важно понимать эти базовые понятия, иначе сложно будет работать с файлами.
Для работы с файлами необходимо подключить заголовочный файл <fstream>.В <fstream> определены несколько классов и подключены заголовочные файлы <ifstream>—файловый ввод и <ofstream>—файловый вывод.
Файловый ввод/вывод аналогичен стандартному вводу/выводу, единственное отличие – это то, что ввод/вывод выполнятся не на экран, а в файл. Если ввод/вывод на стандартные устройства выполняется с помощью объектов cin и cout, то для организации файлового ввода/вывода достаточно создать собственные объекты, которые можно использовать аналогично операторам cin иcout.
Например, необходимо создать текстовый файл и записать в него строку Работа с файлами в С++. Для этого необходимо проделать следующие шаги:
- создать объект класса ofstream;
- связать объект класса с файлом, в который будет производиться запись;
- записать строку в файл;
- закрыть файл.
Почему необходимо создавать объект класса ofstream, а не класса ifstream? Потому, что нужно сделать запись в файл, а если бы нужно было считать данные из файла, то создавался бы объект класса ifstream.
// создаём объект для записи в файл ofstream /*имя объекта*/; // объект класса ofstream |
Назовём объект – fout, Вот что получится:
ofstream fout; |
Для чего нам объект? Объект необходим, чтобы можно было выполнять запись в файл. Уже объект создан, но не связан с файлом, в который нужно записать строку.
fout.open("cppstudio.txt"); // связываем объект с файлом |
Через операцию точка получаем доступ к методу класса open(), в круглых скобочках которого указываем имя файла. Указанный файл будет создан в текущей директории с программой. Если файл с таким именем существует, то существующий файл будет заменен новым. Итак, файл открыт, осталось записать в него нужную строку. Делается это так:
fout << "Работа с файлами в С++"; // запись строки в файл |
Используя операцию передачи в поток совместно с объектом fout строка Работа с файлами в С++ записывается в файл. Так как больше нет необходимости изменять содержимое файла, его нужно закрыть, то есть отделить объект от файла.
fout.close(); // закрываем файл |
Итог – создан файл со строкой Работа с файлами в С++.
Объединим весь код и получим следующую программу.
using namespace std;
int main(int argc, char* argv[])
ofstream fout("cppstudio.txt"); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
fout << "Работа с файлами в С++"; // запись строки в файл
fout.close(); // закрываем файл
Осталось проверить правильность работы программы, а для этого открываем файл cppstudio.txt и смотрим его содержимое, должно быть — Работа с файлами в С++.
Для того чтобы прочитать файл понадобится выполнить те же шаги, что и при записи в файл с небольшими изменениями:
- создать объект класса ifstream и связать его с файлом, из которого будет производиться считывание;
- прочитать файл;
- закрыть файл.
using namespace std;
int main(int argc, char* argv[])
setlocale(LC_ALL, "rus"); // корректное отображение Кириллицы
char buff[50]; // буфер промежуточного хранения считываемого из файла текста
ifstream fin("cppstudio.txt "); // (ВВЕЛИ НЕ КОРРЕКТНОЕ ИМЯ ФАЙЛА)
if (!fin.is_open()) // если файл не открыт
cout << "Файл не может быть открыт!\n"; // сообщить об этом
fin >> buff; // считали первое слово из файла
cout << buff << endl; // напечатали это слово
fin.getline(buff, 50); // считали строку из файла
fin.close(); // закрываем файл
cout << buff << endl; // напечатали эту строку
В программе показаны два способа чтения из файла, первый – используя операцию передачи в поток, второй – используя функцию getline(). В первом случае считывается только первое слово, а во втором случае считывается строка, длинной 50 символов. Но так как в файле осталось меньше 50 символов, то считываются символы включительно до последнего. Обратите внимание на то, что считывание во второй раз (строка 17) продолжилось, после первого слова, а не с начала, так как первое слово было прочитано в строке 14. Результат работы программы показан на рисунке 1.
Рисунок 1 — Работа с файлами в С++
Режимы открытия файлов
Режимы открытия файлов устанавливают характер использования файлов. Для установки режима в классе ios_base предусмотрены константы, которые определяют режим открытия файлов (см. Таблица 1).
Таблица 1 — режимы открытия файлов | |
Константа | Описание |
ios_base::in | открыть файл для чтения |
ios_base::out | открыть файл для записи |
ios_base::ate | при открытии переместить указатель в конец файла |
ios_base::app | открыть файл для записи в конец файла |
ios_base::trunc | удалить содержимое файла, если он существует |
ios_base::binary | открытие файла в двоичном режиме |
Режимы открытия файлов можно устанавливать непосредственно при создании объекта или при вызове функции open().
ofstream fout("cppstudio.txt", ios_base::app); // открываем файл для добавления информации к концу файла fout.open("cppstudio.txt", ios_base::app); // открываем файл для добавления информации к концу файла |
Режимы открытия файлов можно комбинировать с помощью поразрядной логической операции или |, например: ios_base::out | ios_base::trunc — открытие файла для записи, предварительно очистив его.
Объекты класса ofstream, при связке с файлами по умолчанию содержат режимы открытия файлов ios_base::out | ios_base::trunc.То есть файл будет создан, если не существует. Если же файл существует, то его содержимое будет удалено, а сам файл будет готов к записи. Объекты класса ifstreamсвязываясь с файлом, имеют по умолчанию режим открытия файла ios_base::in— файл открыт только для чтения. Режим открытия файла ещё называют — флаг, для удобочитаемости в дальнейшем будем использовать именно этот термин. В таблице 1 перечислены далеко не все флаги, но для начала этих должно хватить.
Обратите внимание на то, что флаги ateиappпо описанию очень похожи, они оба перемещают указатель в конец файла, но флаг app позволяет производить запись, только в конец файла, а флаг ate просто переставляет флаг в конец файла и не ограничивает места записи.
ПРИМЕР
Написать программу, которая считывает текст из файла и выводит на экран предложения,
содержащие максимальное количество знаков пунктуации.
1)считать весь файл в строку, для этого узнать размер файла и выделить столько памяти для строки и считать туда файл
2)разбить строку по предложениям с помощью лексем-разделителей, и посчитать кол-во пунктуаций в предложении
3)записать эту информацию в массив структуры
4)найти максимальное кол-во знаков пунктуации в массиве структур
5)вывести на экран предложения, содержащие максимальное количество знаков пунктуации
using namespace std;
SetConsoleCP(1251);// установка кодовой страницы win-cp 1251 в поток ввода
SetConsoleOutputCP(1251); // установка кодовой страницы win-cp 1251 в поток вывода
if (!ifs.is_open()) // если файл не открыт
cout << "Файл не может быть открыт!\n"; // сообщить об этом
// Получаем длину файла:
// Выделяем память соответственно размеру файла:
buffer = new char[length];
//Выделяем память для массива структур, где будем хранить каждое предложение и кол-во пунктуаций в ней.
Sentence *arrSentence = new Sentence[length / 100 + 10];
// считываем данные в буфер одним блоком:
char *next_token1 = NULL;
char *next_token2 = NULL;
//разбиваем текст файла на предложения с помощью лексем
char *token1 = strtok_s(buffer, delim, &next_token1);
int n = 0, maxPunctuationCount = 0;
while (token1 != NULL)
strcpy(arrSentence[n].senten, token1);//копируем предложение в массив
if (strtok_s(token1, punktuation, &next_token2) != NULL)
while (strtok_s(NULL, punktuation, &next_token2) != NULL)
//ищем максимальное кол-во пунктуаций в предложениях
maxPunctuationCount = maxPunctuationCount > count ? maxPunctuationCount : count;
//переходим к следующему предложению
token1 = strtok_s(NULL, delim, &next_token1);
cout << "Печатаем предложения с макс. кол-вом пунктуаций = " << maxPunctuationCount << endl;
for (int i = 0; i < n; i++)
if (arrSentence[i].count == maxPunctuationCount)
Лабораторная работа № 11. Работа со строками в C++. Потоки ввода-вывода. Файловые операции
Цель и порядок работы
Цель работы – ознакомиться с возможностями ввода-вывода языка C++, освоить основные операции работы со строками и файлами.
Порядок выполнения работы:
- ознакомиться с описанием лабораторной работы;
- получить задание у преподавателя, согласно своему варианту;
- написать программу и отладить ее на ЭВМ;
Контрольные вопросы
1. Какие виды строк существуют в C++?
2. Как объявить C-строку?
3. Как осуществляется ввод-вывод строк?
4. Какие операции над строками вы знаете?
5. Перечислите операции над символами?
6. Перечислите стандартные потоки ввода-вывода?
7. Как создать файловый поток?
8. Какие режимы открытия файлов существуют?
9. Что такое двоичный режим ввода-вывода?
10. Что такое текстовый режим ввода-вывода?
11. Как осуществляется чтение символов и строк?
12. Как изменить текущую позицию в файле?
13. Как узнать текущую позицию в файле?
14. Для чего используется метод clear()?
Варианты заданий
Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово.
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа.
Написать программу, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв.
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые два соседних слова.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых.
Написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих не более чем из четырех букв.
Написать программу, которая считывает текст из файла и выводит на экран только цитаты, то есть предложения, заключенные в кавычки.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов.
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы.
Написать программу, которая считывает текст из файла и выводит на экран только строки, не содержащие двузначных чисел.
Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы.
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с гласной буквы, на прописную.
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова «ноль», «один», . «девять», начиная каждое предложение с новой строки.
Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте.
Написать программу, которая считывает текст из файла и выводит на экран сначала вопросительные, а затем восклицательные предложения.
Написать программу, которая считывает текст из файла и выводит его на экран, после каждого предложения добавляя, сколько раз встретилось в нем введенное с клавиатуры слово.
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке.
Читайте также: