Чтобы прочитать массив символов или текст, вы можете использовать std::getline
и std::string
:
std::string text;
std::getline(myfile, text);
Для обработки текстовых строк в файле:
std::string text;
while (std::getline(myfile, text))
{
Process_Text(text);
}
Не используйте массивы символов, так как они могут переполниться. Кроме того, вместо использования ==
для сравнения вам придется использовать strcmp
. Всегда проверяйте, что ваш массив символов заканчивается нулевым символом, '\0'
, в противном случае строковые функции будут выходить за пределы вашего массива, не останавливаясь, пока не будет найдено значение nul.
Редактировать 1: Разделенный пробелом
Чтобы прочитать текст, разделенный пробелами, используйте:
std::string text;
myfile >> text;
Редактировать 2: Подсчет символов в строке
Вы можете считать символы в строке, используя другой массив.
unsigned int frequency[128] = {0}; // Let's assume ASCII, one slot for each character.
// ... read in string
const size_t length(text.length());
for (size_t index = 0; index < length; ++index)
{
const char letter = text[index];
++frequency[letter];
}