Добавил 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()
|
int main()
|
||||||
{
|
{
|
||||||
std::cout << "Hello World!\n";
|
std::cout << "Hello World!\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Запуск программы: CTRL+F5 или меню "Отладка" > "Запуск без отладки"
|
|
||||||
// Отладка программы: F5 или меню "Отладка" > "Запустить отладку"
|
|
||||||
|
|
||||||
// Советы по началу работы
|
|
||||||
// 1. В окне обозревателя решений можно добавлять файлы и управлять ими.
|
|
||||||
// 2. В окне Team Explorer можно подключиться к системе управления версиями.
|
|
||||||
// 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения.
|
|
||||||
// 4. В окне "Список ошибок" можно просматривать ошибки.
|
|
||||||
// 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода.
|
|
||||||
// 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл.
|
|
||||||
@@ -127,8 +127,12 @@
|
|||||||
</Link>
|
</Link>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClCompile Include="io.cpp" />
|
||||||
<ClCompile Include="lab1.cpp" />
|
<ClCompile Include="lab1.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="io.h" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
|
|||||||
@@ -18,5 +18,13 @@
|
|||||||
<ClCompile Include="lab1.cpp">
|
<ClCompile Include="lab1.cpp">
|
||||||
<Filter>Исходные файлы</Filter>
|
<Filter>Исходные файлы</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="io.cpp">
|
||||||
|
<Filter>Исходные файлы</Filter>
|
||||||
|
</ClCompile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ClInclude Include="io.h">
|
||||||
|
<Filter>Файлы заголовков</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
Reference in New Issue
Block a user