|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.01.2008, 19:40 | #1 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 50
|
Задачка на работу с символами и строками C++
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов, а длина строки текста содержит не более 70 символов. Имя файла должно иметь расширение .dat. Написать программу, которая а)выводит текст на экран дисплея;
б) Выводит текст на экран дисплея еще раз, вставляя в каждое предложение в качестве последнего заданное слово, введенное с клавиатуры в качестве исходных данных, по нажатию произвольной клавиши поочередно выделяет в тексте вставленное слово. Программа д. б. выполнена в BC 3.1. По какому пути идти в решении этой задачи? Последний раз редактировалось Go6a; 29.01.2008 в 17:12. |
30.01.2008, 14:59 | #2 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 50
|
Так никто и не поможет?
|
10.02.2008, 19:28 | #3 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 50
|
Хотя бы подскажите, что и по какому учебнику поизучать чтоб решить задачку!
|
23.03.2008, 16:05 | #4 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 50
|
UP!!!!!!!!
|
23.03.2008, 16:42 | #5 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Go6a, если бы Вы хотя бы написали, под DOS или под Windows собираетесь писать...
Открыть, прочитать и закрыть файл, скажем с помощью fopen, fread, fclose. Если собираетесь выделять слова цветом, то лучше, пожалуй, сразу работать с "консольным" выводом: cprintf, cputs, textcolor и т.д. - смотрите заголовок conio.h Если нужно будет искать слова и, может быть, окончания строк, то строковые функции: strchr, strspn, strlen и т.д. |
23.03.2008, 17:19 | #6 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 50
|
Собираюсь под DOS. Я думаю сделать так: создать 2буфера: под текст из файла и под текст из файла, в котором вставлены слова, и еще буфер под слово. Скопировать текст из файла в первый буфер, затем посимвольно копировать из первого буфера во второй до признака конца предложения(точки). Как только натыкаемся на точку - копируем символы из буфера со словом в первый буфер, а затем, продолжаем копировать из первого буфера во второй.
Я правильно мыслю? Последний раз редактировалось Go6a; 23.03.2008 в 17:29. |
23.03.2008, 17:42 | #7 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Да можно, в принципе, и так. Можно обойтись одним буфером и при выводе предложений просто дописывать к ним слово. Обычная дилемма между объёмом памяти и быстродействием. Наверное, стоит завести какую-нибудь структуру для описания строк, предложений и "координат" вставляемого слова, его ведь переписывать (или просто менять текстовые атрибуты) придется. Здесь, как обычно, несколько путей решения, выбирайте самый безболезненный.
|
23.03.2008, 17:59 | #8 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 50
|
|
23.03.2008, 20:38 | #9 |
Пользователь
Регистрация: 27.01.2008
Сообщений: 50
|
Создаю скелет будущей программы. Первые проблемы. Почему в цикле while строка line выводится на экран нормально(1), а когда содержимое этой строки копирую посимвольно в строку dest, а затем делаю контрольный вывод dest, то строка dest на экран не выводится(2)
#include <fstream.h> #include <string.h> #include <iostream.h> int main() { const int len = 81; char word[len], line[len], dest[len]; cout << "Vvedite slovo dlya poiska." << endl; cin >> word; ifstream fin ("text.txt", ios::in | ios::nocreate); if (!fin) { cout << "Oshibka otkr. faila." << endl; return 1; } while (fin.getline (line, len)) { cout << line << endl; //1 } for (int i = 0; i <= strlen(line); i++) dest[i] = line[i]; cout << dest << endl; //2 return 0; } |
23.03.2008, 21:20 | #10 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
У Вас цикл while неправильно построен. На последнем проходе читается пустая строка, но она читается в line, которую Вы потом пытаетесь копировать.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача на работу с файлами и строками | MiH@N | Помощь студентам | 8 | 24.06.2008 00:44 |
Работа с русскими символами... | Sota | Помощь студентам | 5 | 31.05.2008 18:44 |
Формирование Excel-документа через OLE-сервер с Unicode-символами | sergushkin | Microsoft Office Excel | 2 | 13.04.2008 23:04 |
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу c++ | DimaG | Общие вопросы C/C++ | 1 | 01.11.2007 21:50 |
Задачка со строками... | 3ypa6uK | Помощь студентам | 5 | 15.12.2006 08:54 |