MyTetra Share
Делитесь знаниями!
Потоки, флаги, Функции для валидации, Маска валидации, Файловый ввод\вывод, режимы открытия файлов, Размер файла
Время создания: 18.06.2020 22:08
Раздел: C++ - Примеры кода - Работа на уроке
Запись: Shut913/Tetra-notes-Programming/master/base/15925073210n4gk8ddz6/text.html на raw.githubusercontent.com

#include <iostream>

#include <string>

#include <cctype>

#include <fstream>


// == Состояние потока

// Flags: goodbit badbit eofbit failbit

// Methods: good() bad() eof() fail() clear() clear(state) rdstate() setstate(state)

//void main()

//{

// std::cout << "Enter your age: ";

// int age;

// std::cin >> age;

// std::cout << std::cin.fail();

//}


// Ф-ци для валидации

// isalphanum(int)

// isalpha(int)

// iscntrl(int)

// isdigit(int)

// isgraph(int) // любой выводимый символ кроме пробела

// isprint(int) // любой выводимый символ включая пробел

// isspace(int)

// isxdigit(int) // является 16-ричным числом


//int main()

//{

// std::string name;

//

// while (true)

// {

// std::cout << "Enter your name: ";

// std::getline(std::cin, name);

//

// bool rejected = false;

//

// for (unsigned int i = 0; i < name.length() && !rejected; ++i)

// {

// if (std::isalpha(name[i]))

// continue;

//

// if (name[i] == ' ')

// continue;

//

// rejected = true;

// }

//

// if (!rejected)

// break;

// }

//

// std::cout << name;

//}


// ---------------


//bool maskValidation(std::string input, std::string mask)

//{

// if (input.length() != mask.length())

// return false;

//

// for (unsigned int i = 0; i < mask.length(); ++i)

// {

// switch (mask[i])

// {

// case '#': // number

// if (!std::isdigit(input[i]))

// return false;

// break;

//

// case '_': // space

// if (!std::isspace(input[i]))

// return false;

// break;

//

// case '@': // alpha

// if (!std::isalpha(input[i]))

// return false;

// break;

//

// case '?': // someone

// break;

//

// default:

// if (input[i] != mask[i])

// return false;

// }

// }

//

// return true;

//}

//

//int main()

//{

// std::string phone;

//

// while (true)

// {

// std::cout << "Enter your phone number (###) ###-#### : ";

// std::getline(std::cin, phone);

//

// if (maskValidation(phone, "(###) ###-####"))

// break;

// }

//

// std::cout << "Your phone is " << phone;

//

// return 0;

//}


// ---------------


//int main()

//{

// int age;

//

// while (true)

// {

// std::cout << "Enter your age: ";

// std::cin >> age;

//

// if (std::cin.fail())

// {

// std::cin.clear();

// std::cin.ignore(32767, '\n');

// continue;

// }

//

// std::cin.ignore(32767, '\n');

// if (std::cin.gcount() > 1)

// continue;

//

// if (age <= 0 || age > 150)

// continue;

//

// break;

// }

//

// std::cout << "Your age is " << age;

//

// return 0;

//}



// == Файловый ввод/вывод (std::ifstream, std::ofstream, std::fstream)

// -- ofstream

// std::flush() // очистка буфера

//void main()

//{

// std::ofstream outf("test.txt");

// if (!outf)

// {

// std::cout << "File error\n";

// exit(1);

// }

//

// outf << "line 1\n";

// outf << "line 2\n";

// outf.put('*');

//}

// -- ifstream

//void main()

//{

// std::ifstream inf("test.txt");

//

// if (!inf)

// {

// std::cout << "File error\n";

// exit(1);

// }

//

// while (inf)

// {

// std::string input;

// std::getline(inf, input);

// std::cout << input << "\n";

// }

//}


// Режимы открытия файлов

// Flags: app ate binary in out trunc

//void main()

//{

// std::ofstream outf("test.txt", std::ios::app);

// if (!outf)

// {

// std::cout << "File error\n";

// exit(1);

// }

//

// outf << "line 3\n";

// outf << "line 4\n";

// outf.close();

//

// //

//

// outf.open("test.txt", std::ios::app);

// outf << "line 5\n";

// outf.close();

//}


// == Рандомный доступ к файлу

// seekg() seekp() tellg()

// Flags: beg cur end

//inf.seekg(15, std::ios::beg);

// Лайфхаки

//inf.seekg(0, std::ios::beg); // в начало

//inf.seekg(0, std::ios::end); // в конец

//int main()

//{

// std::ifstream inf("test.txt");

//

// if (!inf)

// {

// std::cout << "File error\n";

// exit(1);

// }

//

// std::string data;

//

// inf.seekg(3);

// std::getline(inf, data);

// std::cout << data << "\n";

//

// inf.seekg(5, std::ios::cur);

// std::getline(inf, data);

// std::cout << data << "\n";

//

// inf.seekg(-7, std::ios::end);

// std::getline(inf, data);

// std::cout << data << "\n";

//}


// -- размер файла (лайфхак)

//void main()

//{

// std::ifstream inf("test.txt");

// inf.seekg(0, std::ios::end);

// std::cout << inf.tellg();

//}

Так же в этом разделе:
 
MyTetra Share v.0.58
Яндекс индекс цитирования