С английским текстом все нормально, а вот с русским начинает писать иероглифы. Поставил русскую локализацию, но это помогает только в коде, а в файле все равно не может прочитать. #include <iostream> #include <fstream> #include <string> using namespace std; int main() { setlocale(LC_ALL, "Russian"); string inputFileName = "text.txt"; string outputFileName = "result.txt"; string line; int lineNumber = 0, maxLineLength = 0, longestLineNum = 0; // Чтение из входного файла ifstream inputFile(inputFileName); // Вывод исходного текста на экран cout << "Исходный текст из файла '" << inputFileName << "':" << endl; while (getline(inputFile, line)) { lineNumber++; cout << "Строка " << lineNumber << ": " << line << endl; // Подсчет длины строки int currentLineLength = line.length(); if (currentLineLength > maxLineLength) { maxLineLength = currentLineLength; longestLineNum = lineNumber; } } inputFile.close(); // Вывод результата на экран cout << "\nСамая длинная строка находится в строке " << longestLineNum << endl; // Запись результата в файл ofstream outputFile(outputFileName); outputFile << "Самая длинная строка находится в строке " << longestLineNum << endl; outputFile.close(); cout << "Результат обработки сохранен в файл '" << outputFileName << "'" << endl; return 0; } CPP #include <iostream> #include <fstream> #include <string> using namespace std; int main() { setlocale(LC_ALL, "Russian"); string inputFileName = "text.txt"; string outputFileName = "result.txt"; string line; int lineNumber = 0, maxLineLength = 0, longestLineNum = 0; // Чтение из входного файла ifstream inputFile(inputFileName); // Вывод исходного текста на экран cout << "Исходный текст из файла '" << inputFileName << "':" << endl; while (getline(inputFile, line)) { lineNumber++; cout << "Строка " << lineNumber << ": " << line << endl; // Подсчет длины строки int currentLineLength = line.length(); if (currentLineLength > maxLineLength) { maxLineLength = currentLineLength; longestLineNum = lineNumber; } } inputFile.close(); // Вывод результата на экран cout << "\nСамая длинная строка находится в строке " << longestLineNum << endl; // Запись результата в файл ofstream outputFile(outputFileName); outputFile << "Самая длинная строка находится в строке " << longestLineNum << endl; outputFile.close(); cout << "Результат обработки сохранен в файл '" << outputFileName << "'" << endl; return 0; }
Смешарик, крч я нашел решение, С++ нормально читает кириллицу только если текстовый документ сохранен в кодировке ANSI. В обычном блокноте нужно нажать "Сохранить как" и в кодировке выбрать ANSI (не забудьте поставить русскую локализацию в самом коде setlocale(LC_ALL, "RU"))