Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 23.73 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <string>
  4. #include <iomanip>
  5. #include <conio.h>
  6. #include <fstream>
  7. #include <locale.h>
  8. #include <windows.h>
  9. #include <io.h>
  10. #include <fcntl.h>
  11. using namespace std;
  12. //----КОНСТАНТЫ----------
  13. const int up = 72,
  14. down = 80,
  15. right_btn = 77,
  16. left_btn = 75,
  17. enter = 13,
  18. esc = 27,
  19. del = 83,
  20. d_n = 20;
  21. const string items[10] =
  22. {
  23. "Создать список или добавить новый эл-т ",
  24. " Удаление всех элементов списка ",
  25. " Просмотр списка ",
  26. " Запись данных в файл ",
  27. " Чтение из файла ",
  28. " Изменить ",
  29. " Поиск ",
  30. " Сортировка по дате ",
  31. " Старые книги ",
  32. " Выход "
  33. };
  34. const string items2[10] =
  35. {
  36. "Поиск по автору книги ",
  37. "Поиск по названию книги",
  38. "Поиск по жанру книги",
  39. "Выход"
  40. };
  41. //=======ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ===============
  42. string filename;
  43. int num_pages = 5, // Кол-во элементов на одной странице
  44. width = 0, // Ширина окна
  45. height = 0; // Высота окна
  46.  
  47. //-------------------------------------------
  48. struct info
  49. {
  50. string autor;
  51. string name;
  52. string izdatelstvo;
  53. string janr;
  54. int d = 0, m = 0, g = 0, cost = 0;
  55. };
  56. struct book
  57. {
  58. info inf;
  59. book* next;
  60. book* pred;
  61. };
  62. //-------------------------------------------
  63. book vvod_book();
  64. book* dob(book* end, const book& s);
  65. book* dob_first(const book& s);
  66. book* udal(book* beg);
  67. void cls();
  68. void gotoxy(int xpos, int ypos);
  69. void print(const book& s);
  70. void prosmotr(book* beg);
  71. void old_book(book beg);
  72. void sort_cost(book** beg);
  73. void sort_data(book* beg);
  74. void searchname(book* beg);
  75. void searchautor(book* beg);
  76. void searchjanr(book* beg);
  77. wchar_t* UnicodeString(string input);
  78. int change(book* beg, string& user_autor, string& new_user_autor);
  79. int read_file(char* filename, book** beg, book** end);
  80. int write_file(char* filename, book* temp);
  81. int write_file_binary(string filename, book* temp);
  82. int read_bin_file(string filename, book* beg, book* end);
  83. int menu(int& active, const string items[], int num_el);
  84. void SetColor(int text, int bg);
  85. //===========основная программа===================================================
  86. int main()
  87. {
  88. // меняем размер шрифта
  89. CONSOLE_FONT_INFOEX cfi;
  90. cfi.cbSize = sizeof(cfi);
  91. cfi.nFont = 0;
  92. cfi.dwFontSize.X = 0; // Width of each character in the font
  93. cfi.dwFontSize.Y = 24; // Height
  94. cfi.FontFamily = FF_DONTCARE;
  95. cfi.FontWeight = FW_NORMAL;
  96. SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), FALSE, &cfi);
  97. //----------------------------------
  98. HANDLE hCon;
  99. // вытаскиваем ширину и высоту
  100. hCon = GetStdHandle(-12);
  101. CONSOLE_SCREEN_BUFFER_INFO consoleInfo;
  102. if (GetConsoleScreenBufferInfo(hCon, &consoleInfo))
  103. {
  104. width = consoleInfo.srWindow.Right - consoleInfo.srWindow.Left + 1;
  105. height = consoleInfo.srWindow.Bottom - consoleInfo.srWindow.Top + 1;
  106. }
  107. //======================================================================
  108. system("cls");
  109. ShowWindow(GetConsoleWindow(), SW_MAXIMIZE); // полноэкранный режим
  110. setlocale(LC_ALL, "Rus");
  111. system("color 8F");
  112. book* beg = NULL,
  113. * end = NULL, input;
  114. string filename;
  115. int Num, current = 1;
  116. string user_autor, new_user_autor;
  117.  
  118. while (1) {
  119. system("cls");
  120. switch (menu(current, items, 10))
  121. {
  122. case 1://создание списка или добовление нового эл-та в список
  123. system("cls");
  124. if (beg)
  125. end = dob(end, vvod_book());
  126. else
  127. {
  128. beg = dob_first(vvod_book());
  129. end = beg;
  130. }
  131. break;
  132. case 2://удаление всех элементов в списке
  133. system("cls");
  134. beg = udal(beg);
  135. cout << "Нажмите любую клавишу" << endl;
  136. cin.get();
  137. break;
  138. case 3://просмотр
  139. system("cls");
  140. prosmotr(beg);
  141. break;
  142. case 4://запись в файл
  143. system("cls");
  144. write_file_binary(filename, beg);
  145. //write_file(filename, beg);
  146. break;
  147. case 5://чтение из файла
  148. system("cls");
  149. //read_file(filename, &beg, &end);
  150. read_bin_file(filename,beg,end);
  151. break;
  152. case 6://редактирование списка
  153. system("cls");
  154. cout << "Введите автора, которого вы хотите изменить: " << endl;
  155. cin >> user_autor;
  156. cout << "Введите нового атвора: " << endl;
  157. cin >> new_user_autor;
  158. Num = change(beg, user_autor, new_user_autor);
  159. if (Num == 1) cout << "Автор успешно перезаписан." << endl;
  160. else cout << "Автор не найден!" << endl;
  161. system("pause");
  162. change(beg, user_autor, new_user_autor);
  163. cin.get();
  164. break;
  165. case 7://поиск
  166. {
  167. system("cls");
  168. int current = 1;
  169. switch (menu(current, items2, 4))
  170. {
  171. case 1://поск по автору
  172. system("cls");
  173. searchautor(beg);
  174. cin.get();
  175. break;
  176. case 2:
  177. system("cls");
  178. searchname(beg);//поиск по названию книги
  179. cin.get();
  180. break;
  181. case 3:
  182. searchjanr(beg);
  183. break;
  184. case 4:break;
  185. }
  186. break;
  187. }
  188. case 8:
  189. {
  190. system("cls");
  191. int current = 1;
  192. switch (menu(current, items2, 3))
  193. {
  194. case 1://поск по автору
  195. system("cls");
  196. sort_cost(&beg); break;
  197. cin.get();
  198. break;
  199. case 2:
  200. system("cls");
  201. searchname(beg);//поиск по названию книги
  202. cin.get();
  203. break;
  204. case 3:break;
  205. }
  206. break;
  207. }
  208. case 9:
  209. if (!beg)
  210. {
  211. MessageBox(0, L"Список пуст", L"Уведомление", MB_ICONINFORMATION | MB_SETFOREGROUND);
  212. break;
  213. }
  214. old_book(*beg);
  215. break;
  216. case 10: return 0;
  217. }
  218. }
  219. return 0;
  220. }
  221.  
  222. //-----------------------------------------------------------------------------
  223. int change(book* beg, string& user_autor, string& new_user_autor)
  224. {
  225. book* temp = beg;
  226. while (temp != NULL)
  227. {
  228. if (temp->inf.autor == user_autor)
  229. {
  230. temp->inf.autor = new_user_autor;
  231. return 1;
  232. }
  233. else
  234. {
  235. temp = temp->next;
  236.  
  237. }
  238. }
  239. return 0;
  240. }
  241. //------------------------------------------------------------------------------
  242. void searchjanr(book* beg)
  243. {
  244. book* temp = beg;
  245. char fname[d_n];
  246. int fl = 0;
  247.  
  248. system("cls");
  249.  
  250. if (!beg)
  251. {
  252. MessageBox(0, L"Список пуст", L"Уведомление", MB_ICONINFORMATION | MB_SETFOREGROUND);
  253. return;
  254. }
  255.  
  256. cout << "Введите название жанра для поиска" << endl;
  257. cin >> fname;
  258. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  259. cout << "| Автор | Название | Издательство | Жанр | Дата поступления | Стоимость |" << endl;
  260. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  261. while (temp)
  262. {
  263. if (fname == temp->inf.janr)
  264. {
  265. print(*temp);
  266. fl = 1;
  267. }
  268. temp = temp->next;
  269. }
  270. if (fl != 1)
  271. {
  272. cout << "Книги с таким жанром не найдено" << endl;
  273. }
  274. system("pause");
  275. }
  276. //------------------------------------------------------------------------------
  277. void searchname(book* beg)
  278. {
  279. book* temp = beg;
  280. char fname[d_n];
  281. int fl = 0;
  282.  
  283. system("cls");
  284.  
  285. if (!beg)
  286. {
  287. MessageBox(0, L"Список пуст", L"Уведомление", MB_ICONINFORMATION | MB_SETFOREGROUND);
  288. return;
  289. }
  290.  
  291. cout << "Введите название книги для поиска" << endl;
  292. cin >> fname;
  293. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  294. cout << "| Автор | Название | Издательство | Жанр | Дата поступления | Стоимость |" << endl;
  295. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  296. while (temp)
  297. {
  298. if (fname == temp->inf.name)
  299. {
  300. print(*temp);
  301. fl = 1;
  302. }
  303. temp = temp->next;
  304. }
  305. if (fl != 1)
  306. {
  307. cout << "Книги с таким названием не найдено" << endl;
  308. }
  309. system("pause");
  310. }
  311. //-----------------------------------------------------------------------------
  312. void searchautor(book* beg)
  313. {
  314. book* temp = beg;
  315. int fl = 0;
  316. char fa[d_n];
  317. system("cls");
  318. if (!beg)
  319. {
  320. MessageBox(0, L"Список пуст", L"Уведомление", MB_ICONINFORMATION | MB_SETFOREGROUND);
  321. return;
  322. }
  323. cout << "Введите автора для поиска" << endl;
  324. cin >> fa;
  325.  
  326. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  327. cout << "| Автор | Название | Издательство | Жанр | Дата поступления | Стоимость |" << endl;
  328. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  329. while (temp)
  330. {
  331. if (fa == temp->inf.autor)
  332. {
  333. print(*temp);
  334. fl = 1;
  335. }
  336. temp = temp->next;
  337. }
  338. if (fl != 1) {
  339. cout << "Книги с таким автором не найдено" << endl;
  340. }
  341. system("pause");
  342. }
  343. //-----------------------------------------------------------------------------
  344. void old_book(book beg)
  345. {
  346. book* temp = &beg;
  347. sort_data(&beg);
  348. system("cls");
  349.  
  350. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  351. cout << "| Автор | Название | Издательство | Жанр | Дата поступления | Стоимость |" << endl;
  352. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  353. for (int i = 0; i < 5; i++) {
  354. print(*temp);
  355. temp = temp->next;
  356. }
  357.  
  358. system("pause");
  359. return;
  360.  
  361. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  362. cin.get();
  363. }
  364. //-----------------------------------------------------------------------------
  365. void prosmotr(book* beg)
  366. {
  367. if (!beg)
  368. {
  369. cout << "список пустой" << endl;
  370. cin.get();
  371. return;
  372. }
  373. book* temp = beg;
  374. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  375. cout << "| Автор | Название | Издательство | Жанр | Дата поступления | Стоимость |" << endl;
  376. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  377. while (temp)
  378. {
  379. print(*temp);
  380. temp = temp->next;
  381. }
  382. cout << "+———————————————————+————————————————————+——————————————————+————————————————+——————————————————+———————————————+" << endl;
  383. cin.get();
  384. }
  385. //-----------------------------------------------------------------------------
  386. book vvod_book()
  387. {
  388. book s;
  389. cout << "Введите автора:" << endl;
  390. while (1)
  391. {
  392. cin >> s.inf.autor;
  393. //if (atoi(s.autor)==0)
  394. // if((s.autor[0] <= '0') && (s.autor[0] >= '9' ) )
  395. break;
  396. cout << "Ошибка ввода!" << endl;
  397. }
  398. cout << "Введите название книги:" << endl;
  399. while (1)
  400. {
  401. cin >> s.inf.name;
  402. //if (atoi(s.name)==0)
  403. break;
  404. cout << "Ошибка ввода!" << endl;
  405. }
  406. cout << "Введите издательство:" << endl;
  407. while (1)
  408. {
  409. cin >> s.inf.izdatelstvo;
  410. //if (atoi(s.izdatelstvo) == 0)
  411. break;
  412. cout << "Ошибка ввода!" << endl;
  413. }
  414. cout << "Введите жанр:" << endl;
  415. while (1)
  416. {
  417. cin >> s.inf.janr;
  418. //if (atoi(s.janr) == 0)
  419. break;
  420. cout << "Ошибка ввода!" << endl;
  421. }
  422. cout << "Введите дату поступления:" << endl;
  423. cout << "Введите день:";
  424. while (1)
  425. {
  426. cin >> s.inf.d;
  427. if ((s.inf.d >= 1) && (s.inf.d <= 31))
  428. break;
  429. cout << "Ошибка ввода!Ведите правильную дату!" << endl;
  430. }
  431. cout << "Введите месяц:";
  432. while (1)
  433. {
  434. cin >> s.inf.m;
  435. if ((s.inf.m >= 1) && (s.inf.m <= 12))
  436. break;
  437. cout << "Ошибка ввода!Ведите правильную дату!" << endl;
  438. }
  439. cout << "Введите год:";
  440. while (1)
  441. {
  442. cin >> s.inf.g;
  443. if ((s.inf.g >= 1900) && (s.inf.g <= 2050))
  444. break;
  445. cout << "Ошибка ввода!Ведите правильную дату!" << endl;
  446. }
  447. cout << "Введите стоимость книги:" << endl;
  448. cin >> s.inf.cost;
  449. return s;
  450. }
  451. //-----------------------------------------------------------------------------
  452. void print(const book& s)
  453. {
  454. cout << "|" << s.inf.autor << setw(20 - (s.inf.autor).length()) << "|";
  455. cout << s.inf.name << setw(21 - (s.inf.name).length()) << "|";
  456. cout << s.inf.izdatelstvo << setw(19 - (s.inf.izdatelstvo).length()) << "|";
  457. cout << s.inf.janr << setw(17 - (s.inf.janr).length()) << "|";
  458. if (s.inf.d < 10) cout << 0 << s.inf.d << ".";
  459. if (s.inf.m < 10) cout << 0 << s.inf.m << "." << s.inf.g << setw(9) << "|";
  460. int count=0;
  461. int re_cost = s.inf.cost;
  462. while (re_cost = re_cost / 10 != 0)
  463. {
  464. count++;
  465. }
  466. count = 20 - count;
  467. cout << s.inf.cost << setw(count) << "|" << endl;
  468.  
  469. }
  470. //--------------ф-я добавления или создания эл-та-------------------------------
  471. book* dob(book* end, const book& s)
  472. {
  473. book* newE = new book;
  474. *newE = s;
  475. newE->next = 0;
  476. end->next = newE;
  477. end = newE;
  478. return end;
  479. }
  480. //--------------создание первого эл-та------------------------------
  481. book* dob_first(const book& s)
  482. {
  483. book* beg = new book;
  484. *beg = s;
  485. beg->next = 0;
  486. return beg;
  487. }
  488. //-----------------------------------------------------------------------------
  489. int read_file(char* filename, book** beg, book** end)
  490. {
  491. cout << "Введите название файла" << endl;
  492. cin >> filename;
  493. ifstream fin(filename, ios::in);
  494. if (!fin) {
  495.  
  496. MessageBox(0, L"Невозможно открыть файл!", L"Ошибка", MB_ICONERROR | MB_SETFOREGROUND);
  497. return 0;
  498.  
  499. }
  500. book s;
  501. *beg = 0;
  502. fin.seekg(0, ios::beg);
  503. while (fin >> s.inf.autor)
  504. {
  505. fin >> s.inf.name;
  506. fin >> s.inf.izdatelstvo;
  507. fin >> s.inf.janr;
  508. fin >> s.inf.d;
  509. fin >> s.inf.m;
  510. fin >> s.inf.g;
  511. fin >> s.inf.cost;
  512. if (*beg)
  513. *end = dob(*end, s);
  514. else
  515. {
  516. *beg = dob_first(s); *end = *beg;
  517. }
  518. }
  519. cout << "Считывание прошло успешно" << endl;
  520. cin.get();
  521. cin.get();
  522. return 0;
  523. }
  524. //-----------------------------------------------------------------------------
  525. int write_file(char* filename, book* temp)
  526. {
  527. cout << "Введите название файла" << endl;
  528. cin >> filename;
  529. ofstream fout(filename, ios_base::app); // открытие файла
  530. if (!fout)
  531. {
  532. cout << "Не могу открыть файл для записи" << endl;
  533. return 1;
  534. }
  535. while (temp)// пока temp!=0 выводим эл-ты в файл
  536. {
  537. fout << temp->inf.autor << endl;
  538. fout << temp->inf.name << endl;
  539. fout << temp->inf.izdatelstvo << endl;
  540. fout << temp->inf.janr << endl;
  541. fout << temp->inf.d << endl;
  542. fout << temp->inf.m << endl;
  543. fout << temp->inf.g << endl;
  544. fout << temp->inf.cost << endl;
  545. temp = temp->next;
  546. }
  547. cout << "Данные сохранены в файле: " << filename << endl;
  548. cout << "==============================" << endl;
  549. cout << "Нажмите любую клавишу" << endl;
  550. cin.get();
  551. return 0;
  552. }
  553. //-----------------------------------------------------------------------------
  554. int write_file_binary(string filename, book* temp)
  555. {
  556. cout << "Введите название файла" << endl;
  557. cin >> filename;
  558. ofstream fout(filename + ".dat", ios::binary); // открытие файла
  559. if (!fout)
  560. {
  561. cout << "Не могу открыть файл для записи" << endl;
  562. return 1;
  563. }
  564. while (temp) {
  565. fout.write((char*)&temp->inf, sizeof temp->inf);
  566. temp = temp->next;
  567. }
  568. cout << "Данные сохранены в файле: " << filename << endl;
  569. cout << "==============================" << endl;
  570. cout << "Нажмите любую клавишу" << endl;
  571. cin.get();
  572. return 0;
  573. }
  574. // ==========ЧТЕНИЕ ИЗ БИНАРНОГО ФАЙЛА==========
  575. int read_bin_file(string filename, book* beg, book* end)
  576. {
  577. cout << "Введите название файла" << endl;
  578. cin >> filename;
  579. book* temp = new book;
  580. ifstream fin(filename + ".dat", ios::binary);
  581.  
  582. if (!fin) {
  583. MessageBox(0, L"Нет файла!", L"Ошибка", MB_ICONERROR | MB_SETFOREGROUND);
  584. return 1;
  585. }
  586.  
  587. fin.seekg(ios_base::beg);
  588. book* t = new book;
  589. t->next = NULL;
  590. t->pred = NULL;
  591.  
  592. while (fin.read((char*)&temp->inf, sizeof temp->inf))
  593. {
  594. if (beg)
  595. {
  596. end->next = temp;
  597. temp->pred = end;
  598. end = temp;
  599. end->next = NULL;
  600. }
  601. else
  602. {
  603. temp->next = NULL;
  604. temp->pred = NULL;
  605. beg = temp;
  606. end = beg;
  607. }
  608. temp = new book;
  609. }
  610.  
  611. fin.close();
  612. return 0;
  613. }
  614.  
  615. //-----------------------------------------------------------------------------
  616. book* udal(book* beg)
  617. {
  618. book* temp;
  619. if (!beg)
  620. {
  621. cout << "список пустой" << endl;
  622. cin.get();
  623. return 0;
  624. }
  625. while (beg)
  626. {
  627. temp = beg;
  628. beg = beg->next;
  629. delete temp;
  630. }
  631. cout << "==============================" << endl;
  632. cout << "====удаление прошло успешно===" << endl;
  633. cout << "==============================" << endl;
  634. return beg;
  635. }
  636. //----------------------------------------------------------------
  637. void sort_data(book* beg)
  638. {
  639. book* temp_i = beg, * temp_j = beg;
  640. for (; temp_i; temp_i = temp_i->next)
  641. {
  642. for (temp_j = temp_i; temp_j; temp_j = temp_j->next)
  643. {
  644. if (temp_i->inf.g != temp_j->inf.g)
  645. {
  646. if (temp_i->inf.g > temp_j->inf.g)
  647. {
  648. swap(temp_i->inf, temp_j->inf);
  649. continue;
  650. }
  651. }
  652. else if (temp_i->inf.m != temp_j->inf.m)
  653. {
  654. if (temp_i->inf.m > temp_j->inf.m)
  655. {
  656. swap(temp_i->inf, temp_j->inf);
  657. continue;
  658. }
  659. }
  660. else if (temp_i->inf.d > temp_j->inf.d)
  661. {
  662. swap(temp_i->inf, temp_j->inf);
  663. continue;
  664. }
  665. }
  666. }
  667. cout << "Сортировка прошла успешно" << endl;
  668. system("pause");
  669. }
  670. //----------------------------------------
  671. void sort_cost(book** beg) {
  672. book* temp_i = *beg,
  673. * temp_j = *beg;
  674.  
  675. for (; temp_i; temp_i = temp_i->next) {
  676. for (temp_j = temp_i; temp_j; temp_j = temp_j->next) {
  677. if (temp_i->inf.cost > temp_j->inf.cost) {
  678. swap(temp_i->inf, temp_j->inf);
  679. }
  680. }
  681. }
  682.  
  683. cout << "Сортировка прошла успешно" << endl;
  684. system("pause");
  685. }
  686. // ==========ШАБЛОН ПЕЧАТИ МЕНЮ==========
  687. void print_menu(int sym, const string items[], const int N_ITEMS)
  688. {
  689. for (int i = 1; i <= N_ITEMS; i++)
  690. {
  691. SetColor(15, 8);
  692. gotoxy((width/2) - 10, (height /2) + i - 3); // ставим меню в центр
  693. if (i == sym)
  694. {
  695. SetColor(16, 3);
  696. }
  697. cout << items[i - 1] << endl;
  698. SetColor(15, 8);
  699. }
  700. }
  701. // ==========МЕНЮ==========
  702. int menu(int& active, const string items[], int num_el)
  703. {
  704. wint_t buf;
  705. while (1)
  706. {
  707. cls();
  708. print_menu(active, items, num_el);
  709.  
  710. buf = _getwch();
  711. switch (buf)
  712. {
  713. case up: // клавиша вверх
  714. if (active > 1) active--;
  715. break;
  716. case down: // клавиша вниз
  717. if (active < num_el) active++;
  718. break;
  719. case enter: // клавиша enter
  720. return active;
  721. case esc: // клавиша escape
  722. return -1;
  723. }
  724. }
  725. }
  726. // ==========УСТАНОВКА ЦВЕТА ТЕКСТА И ФОНА==========
  727. void SetColor(int text, int bg)
  728. {
  729. HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
  730. SetConsoleTextAttribute(hStdOut, (WORD)((bg << 4) | text));
  731. }
  732. // ==========ПЕРЕМЕЩЕНИЕ КУРСОРА НА ВЫБРАННУЮ ПОЗИЦИЮ==========
  733.  
  734. void gotoxy(int xpos, int ypos)
  735. {
  736. COORD scrn;
  737. HANDLE hOuput = GetStdHandle(STD_OUTPUT_HANDLE);
  738. scrn.X = xpos; scrn.Y = ypos;
  739. SetConsoleCursorPosition(hOuput, scrn);
  740. }
  741. //=====================================
  742. wchar_t* UnicodeString(string input) {
  743. const char* orig = input.c_str();
  744. size_t origsize = strlen(orig) + 1;
  745. const size_t newsize = 100;
  746. size_t convertedChars = 0;
  747. wchar_t* wcstring = new wchar_t[newsize];
  748. mbstowcs_s(&convertedChars, wcstring, origsize, orig, _TRUNCATE);
  749. return wcstring;
  750. }
  751. // ==========ОЧИСТКА ЭКРАНА БЕЗ МЕРЦАНИЯ==========
  752. void cls() {
  753. HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);
  754. COORD cd;
  755. cd.X = 0;
  756. cd.Y = 0;
  757. SetConsoleCursorPosition(hd, cd);
  758. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement