C++


C++ запускаю так:

clang++ test.cpp -O3 -o optimizedO3 && ./optimizedO3

Используйте флаги оптимизации O2, O3. Например g++ -O2 u.cpp && ./a.out

https://www.linux.org.ru/forum/development/16616396/page23 - тут про регулярки:

auto regex = pcre_compile("([^+ ]*?)([^+ ]*)[ +]+\\2", PCRE_UTF8, &prce_error, &pcre_erroff, 0);

---------------------

Глобальная Замена по регулярному выражению. Эквивалент:
s/ря.*?ой/сержант/g;

#include <regex>
#include <iostream>

int main()
{
//std::string s = "Вася был рядовой хороший - ряженной";
s = std::regex_replace("Вася был рядовой хороший - ряженной", std::regex("ря.*?ой"), "сержант");

std::cout << s << std::endl;
}



---------------------------

Многострочный текст

u =
" be\n"
"tring.\n";

u =
" be\
tring.";

u = R"HTML(
11
22
33
)HTML";


------ -----------
Достаём цифры с строки и получаем среднее:

#include <iostream>
#include <regex>
using namespace std;

int main(){
const string s = "pro hor ov,5,1,3,1,5";
regex space_re(R"(\d+)");
float $os; int $i=0;

for(auto t= sregex_token_iterator(s.begin(),s.end(),space_re); t!= sregex_token_iterator(); ++t){
$os += stoi(*t);
++$i;
}

float $f=$os/$i;
std::cout<<$f<<"\n";
}


----------- ----------
Закрытие программы как только нажат Ввод:

#include <cstdio>

int main() {getchar();}

Или так:

#include <iostream>

int main()
{

std::cout << "Нажмите Enter для завершения";
std::cin.get();
return 0;
}

----------
Из строки получить число:

#include <iostream>
//#include <cstdlib>

int main()
{

std::cout << (atoi("222") * 2);
return 0;
}
---------

Переменная типа int может занимать до 4-х байт
chart - это целое число из таблицы ансс11

------ --------

//пример использования функции puts

#include <cstdio>

int main(){
puts("10");
return 0;
}
---------- ------------

#include <cstdio>

int main(void){
printf("Привет мир");
return 0;
}

говорят что printf более тормознутая чем cout >>

printf(25); - даст ошибку - так-как перед выводом числа нужно форматировать.

Например вот так:
printf("%d", 25);

Для чисел - там просто куча методов форматирования.
Для строк - есть возможность выбора количества выводимых символов, центровка
https://ru.wikipedia.org/wiki/Printf

#include <cstdio>

int main(void){
printf("Привет %d мир %d", 55, 23);
return 0;
}

----------- ----------

Создаёт и записывает строку в файл.

#include <iostream>
#include <cstdio>

int main ()
{
FILE * D = fopen("file1.txt", "w");

if (D != NULL)
{
fputs("Пример использования функции fopen ", D); // записать строку в файл
fclose (D);
}
return 0;
}

---------- -------

//пример использования функции fgets

#include <cstdio>

int main()
{
FILE * D = fopen("file.txt" , "r");
char mystring [100];

if ( fgets(mystring, 100, D) != NULL ) // считать символы из файла
puts(mystring); // вывод на экран
fclose (D);

return 0;
}

Comments

#include iostream>
#include fstream>

int main(){
using namespace std;
ifstream inf("mark.csv");
string S_;

while (inf){
getline(inf, S_);

if(S_ != "") cout << S_ <<"\n";
}

return 0;
}

Используйте std::endl, когда нужно, чтобы ваши данные выводились сразу же (например, при записи в файл или при обновлении индикатора состояния какого-либо процесса). Обратите внимание, это может повлечь за собой незначительное снижение производительности, особенно если запись на устройство происходит медленно (например, запись файла на диск).

Используйте '\n' во всех остальных случаях.

#include iostream>
#include string>

int main()
{
std::string students[10] = {
"Иванов", "Петров", "Сидоров",
"Ахмедов", "Ерошкин", "Выхин",
"Андеев", "Вин Дизель", "Картошкин", "Чубайс"
};
std::cout << students[0] << std::endl;
return 0;
}