, поэтому пользователь будет вводить файл с любым текстом внутри, а программа должна читать каждый символ и подсчитывать, сколько из них имеет каждый символ (только прописные и строчные буквы). Таким образом, не может быть 50 А, 23 б, и т.д ...Прочитайте символы в файле и подсчитайте, сколько отдельных букв есть [C++]
Вот что я до сих пор в моем main.cc:
char character;
int i = 65; //this is the iterator to go through upper and lowercase letters
int count = 0; //counts number of characters and resets when exiting the loop and after using cout
ifstream file(filename); //filename is a string the user inputs
while (i != 0) {
while (file >> character) {
int a = character;
cout << a << endl; //testing: outputs the correct number for the letter
if (i == a) { //but for some reason this part isn't working?
count++;
}
}
cout << count << endl; //this outputs 0 every time
count = 0;
i++;
if (i == 91) i = 97; //switch to lower case
if (i == 123) i = 0; //exit loop
}
Я ценю вашу помощь! спасибо :)
Я думаю, что файл >> символ дает слово не характер. Таким образом, вы фактически пропускаете остальные символы, когда вы выполняете int a = character. – InQusitive
@InQusitive: 'character' имеет тип' char', поэтому 'file >> character' будет читать только один символ, а не целое слово. – AndyG
Проблема atm заключается в том, что вы читаете файл до конца, ища первый символ («A»), затем поток достиг EOF! Таким образом, в потоке не останется никаких данных. Я также сделал бы условие (! File.eof()) – Nidhoegger