Добавил io
This commit is contained in:
91
lab1/io.cpp
Normal file
91
lab1/io.cpp
Normal file
@@ -0,0 +1,91 @@
|
||||
#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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %d <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>.\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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>.\n");
|
||||
continue;
|
||||
}
|
||||
else if (result < minVal || result > maxVal) {
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> %d <20><> %d.\n", minVal, maxVal);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
clearBuffer();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int inputNumber(int minVal)
|
||||
{
|
||||
int result;
|
||||
while (true)
|
||||
{
|
||||
if (scanf("%d", &result) != 1) {
|
||||
clearBuffer();
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>.\n");
|
||||
continue;
|
||||
}
|
||||
else if (result < minVal) {
|
||||
printf("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> yes (y) <20><><EFBFBD> no (n).\n");
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void waitForEnter()
|
||||
{
|
||||
while ((getchar()) != '\n');
|
||||
}
|
||||
Reference in New Issue
Block a user