Добавил 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');
|
||||
}
|
||||
15
lab1/io.h
Normal file
15
lab1/io.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
#define _CRT_SECURE_NO_WARNINGS
|
||||
#include <iostream>
|
||||
|
||||
void clearBuffer();
|
||||
|
||||
char* inputString(int maxLen);
|
||||
|
||||
int inputNumber(int minVal, int maxVal);
|
||||
|
||||
int inputNumber(int minVal);
|
||||
|
||||
bool userApprove();
|
||||
|
||||
void waitForEnter();
|
||||
@@ -1,20 +1,9 @@
|
||||
// lab1.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
|
||||
//
|
||||
#include <iostream>
|
||||
#include "io.h"
|
||||
|
||||
#include <iostream>
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
std::cout << "Hello World!\n";
|
||||
}
|
||||
|
||||
// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
|
||||
// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
|
||||
|
||||
// Советы по началу работы
|
||||
// 1. В окне обозревателя решений можно добавлять файлы и управлять ими.
|
||||
// 2. В окне Team Explorer можно подключиться к системе управления версиями.
|
||||
// 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
|
||||
// 4. В окне "Список ошибок" можно просматривать ошибки.
|
||||
// 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
|
||||
// 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
|
||||
|
||||
@@ -127,8 +127,12 @@
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="io.cpp" />
|
||||
<ClCompile Include="lab1.cpp" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="io.h" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
|
||||
@@ -18,5 +18,13 @@
|
||||
<ClCompile Include="lab1.cpp">
|
||||
<Filter>Исходные файлы</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="io.cpp">
|
||||
<Filter>Исходные файлы</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="io.h">
|
||||
<Filter>Файлы заголовков</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user