Какое введение можно написать по этой теме в курсовой?

Тема: Проанализировать файл с текстом. Определить частоту повторяемости каждой буквы алфавита и каждой цифры в тексте.
-Цель данной курсовой работы:
-Задачи курсовой работы:
-Объектом исследования является
Код(правда он пока некорректный,должен выводить нужные русские буквы,но он не те выводит):

#include <iostream>
#include <string>
#include <fstream>
#include <map>
#include <cstdlib>

using namespace std;
struct chcp1251 {
	static bool is_alpha(char ch) {
		return (ch >= -64 && ch <= -1)
			|| ch == -88
			|| ch == -72
			|| (ch >= 65 && ch <= 97)
			|| (ch >= 90 && ch <= 122);
	}
	static bool is_digit(char ch) {
		return ch >= 48 && ch <= 57;
	}
};
int main() {
	
	system("chcp 65001");
	std::ifstream ifs{ "C:\\Users\\slv13\\source\\repos\\testkyrs\\codir.txt" };
	std::string str{ std::istreambuf_iterator<char>{ifs.rdbuf()}, {} };
	std::cout << str << std::endl;
	ifs.close();

	system("chcp 1251 > nul");
	map<char, size_t> letters;
	map<char, size_t> digits;

	ifstream file("C:\\Users\\slv13\\source\\repos\\testkyrs\\codir.txt");
	if (file.is_open()) {
		char ch;
		while (ch = file.get()) {
			if (file.eof()) break;
			if (chcp1251::is_alpha(ch)) ++digits[ch];
			if (chcp1251::is_digit(ch)) ++letters[ch];
		}
		file.close();
	}

	else puts("Файл text.txt не найден!");
	cout << "Введенные числа:" << endl;
	for (auto [key, value] : letters) cout << key << " - " << value << '\n';
	wcout.put(L'\n');
	cout << "Введенные буквы:" << endl;
	for (auto [key, value] : digits) wcout << key << " - " << value << '\n';
	system("pause > nul");

}

Язык программирования C++

И где она? :grinning:

забыл стереть просто,это как пример был,но непонятный),теперь всё как надо.

Ну дык цели надо определять до начала работы, а не в конце )
Если и правда задали такую задачу для курсовой и сказали еще и отчет написать, то вряд ли кто-то ожидает нормальное введение, просто скопипастить у одногруппников или написать что-то о том, что цель — научиться делать что-то (работать с текстом в С++, …).

Это как? Кракозябры выводит вместо русских букв?

Да, в консоли винды сложно с не английским текстом потому что там не юникод (по крайней мере по умолчанию) :kolobokcrossing:

Лучше так:

	if (!file.is_open()) {
		puts("Файл text.txt не найден!");
		return 1;
	}

	char ch;
	while (...

И читать код проще, и не забыт выход при ошибке (зачем выводить то, что дальше, если данных нет).

не особо нужно, в С++ деструктор и так закроет.

не нужно, .get(ch) и так вернет fstream, у которого реализован оператор, который вернет false когда нельзя читать. http://www.cplusplus.com/reference/ios/ios/operator_bool/
Как тут было

“Поставили мне на форуме такую задачу, решив взять “на слабо”:…” :laughing:

А что, в компиляторе уже поменяли костыль по границе блока?)

А чего с ним? В конце функции вызовется деструктор.

Так что вызывать самому разве что если очень надо закрыть файл раньше )
Ну или да, можно блок добавить.

{
    fstream fs("file.txt");
    ...
}
// файл закрыт

Но обычно лучше уж тогда просто выделить отдельную функцию чтения.

Это чревато ошибками синхронизации, например, с вводом-выводом. Хорошо еще если просто кривое UI получится и пользователь отматерит/напишут костыльную инструкцию.

Чего в С++ только не придумают, лишь бы не допиливать компилятор.

спасибо всем