Простая программа для редактирования текста в Stack Overflow

У меня возникли небольшие проблемы с созданием программы, которая редактирует текст на C ++. Имейте в виду, что я все еще в начале программирования. Вот что я должен сделать:

Некоторый текст помещается в текстовый файл F. Я должен написать программу-редактор, которая на основе файла F, команд и данных с клавиатуры создает файл FF. Программа-редактор должна распознавать и обрабатывать следующие команды:

AN — вставить текст после n-й строки;

IN — вставить текст перед n-й строкой;

CM, N — подстановка строк с m-го на n-й;

DM, N — удаление строк с m-го по n-й;

E — конец редактирования;

где m и n — количество строк в файле F. Команды записываются по одной в строке и выполняются как меню.

Это программа. Я много исследовал в Интернете о редактировании текста, и есть некоторые исходные коды программ редактирования текста, но я думаю, что я все еще в начале программирования, и я нахожу эти исходные коды действительно трудными для понимания. Я обеспокоен несколькими вещами:

Должен ли я вручную помещать текст в текстовый файл F и должен ли я добавить еще один параметр в меню о добавлении текста;

Другое дело о командах — как найти и использовать различные строки из текста, чтобы я мог вставлять, заменять и удалять строки;

Ну вот и все. Если у вас есть время, пожалуйста, помогите мне, потому что мне действительно нужно знать, как эта программа должна выполняться не так сложно, и я думаю, что в ней есть некоторые ценные вещи, которые я мог бы извлечь из нее. Заранее спасибо !

1

Решение

В псевдокод, вы найдете каждый реальный Функция, которая вам понадобится в документации.

Вам нужно написать parse () самостоятельно, все vec.something и input.something — это настоящие векторные или строковые функции, под другим именем вам придется искать документацию.

open, close и writeinfile также являются функциями под другим именем (и разными параметрами), см. документацию

getuserinput также является переименованной базовой функцией io.

Поэтому я пишу это, чтобы дать вам представление о том, как это сделать, это не ложка раствора, которую вам подают, думайте об этом как о алгоритме, если вы можете делать свою домашнюю работу без нее, это гораздо лучше, чем ее использовать. Также, научитесь искать в документе, это действительно полезно

vector<string> vec
int n, m
string input, output

//Open the file
open(your_file)
//Store every line in a string in the vector
while(input != EOF)
{
input = getalinefrom(file)
vec.add(input)
}

//You don t need the file for now, so close it
close(file)

//Create your 'menu', presuming text based, if graphical, well...
do
{
//Get user choice
input = getuserinput()

//Every command is just a letter, so check it to know what to do
if(input.firstchar == 'A')
{
//Parse the input to get n
n = parse(input)
//Get the line to add
input = getuserinput()
//Add it before n
vec.addafter(n, input)
}
else if (input.firstchar == 'I')
{
//Parse the input to get n
n = parse(input)
//Get the line to add
input = getuserinput()
//Add it before n
vec.addbefore(n, input)
}
else if (input.firstchar == 'C')
{
//Well, I don t see what is substitution so I ll let you try
}
else if (input.firstchar == 'D')
{
//Get n and m
n = parse(input)
m = parse(input)
//Presuming n < m, you ll need to check for error
while(n < m)
{
vec.deleterow(n)
n = n + 1
}
}
//Go out of the loop at E since it s the end of the app
}while(input != "E");
//Concatene every line
n = 0
do
{
output = output + vec.contentofrow(n)
}while(n < vec.length)
//Open the file again, with correct flag it will erase it content
open(file)
//Write your new content
writeinfile(file, output)
//Close the file
close(file)
return 0;
2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector