Изменение существующей строки

193
27 октября 2017, 13:33

Здравствуйте. Мне хотелось бы понять, как можно реализовать изменение строки, введенной прежде с помощью функции getline в консольном приложении.

Например:

string Input;
cout << "Введите строку: ";
getline(cin, Input);
cout << "Изменить строку: ";

А далее поместить строку из Input в консоль, при этом, что бы можно было бегать курсором по строке и менять нужные нам символы на другие, а затем сохранить эту строку в новом виде.

Answer 1
#include<string>
#include<iostream>
#include<windows.h> //решение не кросплатформенное, работает только на Windows
using namespace std;
int main()
{ 
  COORD coord;
  string Input;
  cout << "Введите строку: ";
  getline(cin, Input);
  cout << "Изменить строку: " << "\n";
  CONSOLE_SCREEN_BUFFER_INFO bi;
  GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &bi); //записываем информацию о буфере экрана в консоли в bi
  coord.X = bi.dwCursorPosition.X; //получаем координаты курсора (это будут координаты начала строки после ее вывода)
  coord.Y = bi.dwCursorPosition.Y;
  cout << Input;
  SetConsoleCursorPosition(GetStdHandle( STD_OUTPUT_HANDLE ), coord); //устанавливаем курсор на ранее полученные координаты
  getline(cin, Input);
  cout << Input;
  return 0;
}
READ ALSO
Как отследить утечку памяти

Как отследить утечку памяти

Работаю под Visual StudioКак узнать, есть ли в программе утечка памяти или нет?

205
:hover не работает

:hover не работает

Не работает hover

296