Files
algorithm/lab1/io.cpp
2024-12-03 13:43:20 +03:00

91 lines
1.6 KiB
C++

#include "io.h"
void clearBuffer() {
while ((getchar()) != '\n');
}
char* inputString(int maxLen)
{
char* result = new char[maxLen];
while (true)
{
if (scanf_s("%[^\n]", result, maxLen) != 1) {
clearBuffer();
printf("Íåêîððåêòíûé ââîä! Ìàêñèìàëüíàÿ äëèíà ñòðîêè %d ñèìâîëîâ. Ïîæàëóéñòà, ïîïðîáóéòå åù¸ ðàç.\n", maxLen - 1);
continue;
}
break;
}
clearBuffer();
return result;
}
int inputNumber(int minVal, int maxVal)
{
int result;
while (true)
{
if (scanf("%d", &result) != 1) {
clearBuffer();
printf("Íåêîððåêòíûé ââîä! Ïîæàëóéñòà, ïîïðîáóéòå åù¸ ðàç.\n");
continue;
}
else if (result < minVal || result > maxVal) {
printf("Íåêîððåêòíûé ââîä! Ïîæàëóéñòà, ââåäèòå ÷èñëî îò %d äî %d.\n", minVal, maxVal);
continue;
}
break;
}
clearBuffer();
return result;
}
int inputNumber(int minVal)
{
int result;
while (true)
{
if (scanf("%d", &result) != 1) {
clearBuffer();
printf("Íåêîððåêòíûé ââîä! Ïîæàëóéñòà, ïîïðîáóéòå åù¸ ðàç.\n");
continue;
}
else if (result < minVal) {
printf("Íåêîððåêòíûé ââîä! Ïîæàëóéñòà, ââåäèòå ÷èñëî áîëüøå %d.\n", minVal);
continue;
}
break;
}
clearBuffer();
return result;
}
bool userApprove()
{
while (true)
{
char* userInput = inputString(4);
if (std::strcmp(userInput, "yes") == 0 || std::strcmp(userInput, "y") == 0) {
return true;
}
else if (std::strcmp(userInput, "no") == 0 || std::strcmp(userInput, "n") == 0) {
return false;
}
else {
printf("Ïîæàëóéñòà, ââåäèòå yes (y) èëè no (n).\n");
}
}
return false;
}
void waitForEnter()
{
while ((getchar()) != '\n');
}