Мне нужно прочитать текстовый файл; однако один текстовый файл дает мне проблемы. Мало того, что текстовый файл огромен (вся электронная книга), но есть также несколько акцентированных букв. Я читаю в словах одну букву, останавливаясь при соответствующей пунктуации или пробелах. Я делаю это, проверяя соответствующий ASCII для букв и знаков препинания, таких как апостроф. есть ли способ, которым я могу читать в акцентированных письмах, но держать их отдельно от других букв? Нужно ли добавлять какие-либо случайные библиотеки?проблемы с вводом текстового файла в C++
Вот мой код, чтобы получить слово:
string GetNextWord(){
string w=""; // used to store each word temporarly
char c; // used for each individual character
int i=0; // a counter
input.get(c); // gets first character
c=tolower(c); // forces c to lowercase
while(c>=97 && c<=122 || c==39){ // loops while the character is a lowercase letter or '
w=w+c; // adds character to word string
input.get(c); // gets next character
c=tolower(c); // forces c to lowercase
++i; // increments counter
}
if(i>0) // if there is a word
return w; // return the word
else // otherwise string is NULL
return "NOT A WORD!"; // returns a flag to main
}
Работы по каждому файлу до сих пор, за исключением, это одно.
Здесь вы можете найти здесь ->http://www.gutenberg.org/cache/epub/244/pg244.txt
Он работает с файлами с цифрами, пунктуацией, заглавными и строчными буквами, поэтому акцентированные буквы - это единственное, что вызывает у меня проблемы. Я согласен с вашей идеей, что она идет в бесконечный цикл. использование пространства имен std; –
Это вам поможет? –
Существует множество способов представления акцентированных букв. Скорее всего, вы видите кодировку latin1, что означает, что вы должны добавить '|| (c> = 161 && c <= 255) 'для теста while – MattSmith