Я работаю через C++ Primer 5th edition, чтобы научить себя C++. Я столкнулся с проблемой в книге, которую я не знаю, как решить в главе 5, используя инструменты, которые они мне дали до сих пор. У меня есть предыдущий опыт программирования, и я решил это самостоятельно, используя noskipws
. Я ищу помощь в решении этой проблемы при минимальном использовании библиотек, подумайте о первых 4-5 главах книги для начинающих.Подсчет новых строк, вкладок и пробелов
Проблема заключается в том, чтобы находить и подсчитывать все гласные, пробелы, символы табуляции и символы новой строки, поскольку они читаются с использованием операторов if. Мое решение проблемы:
// Exercise 5.9
int main()
{
char c;
int aCount = 0;
int eCount = 0;
int iCount = 0;
int oCount = 0;
int uCount = 0;
int blankCount = 0;
int newLineCount = 0;
int tabCount = 0;
while (cin >> noskipws >> c)
{
if(c == 'a' || c == 'A')
aCount++;
else if(c == 'e' || c == 'E')
eCount++;
else if(c == 'i' || c == 'I')
iCount++;
else if(c == 'o' || c == 'O')
oCount++;
else if(c == 'u' || c == 'U')
uCount++;
else if(c == ' ')
blankCount++;
else if(c == '\t')
tabCount++;
else if(c == '\n')
newLineCount++;
}
cout << "The number of a's: " << aCount << endl;
cout << "The number of e's: " << eCount << endl;
cout << "The number of i's: " << iCount << endl;
cout << "The number of o's: " << oCount << endl;
cout << "The number of u's: " << uCount << endl;
cout << "The number of blanks: " << blankCount << endl;
cout << "The number of tabs: " << tabCount << endl;
cout << "The number of new lines: " << newLineCount << endl;
return 0;
}
Единственный способ, которым я могу думать, чтобы решить это с помощью GetLine(), а затем рассчитывает количество раз это петли, чтобы получить «/ п» подсчитывать, а затем пошагово каждой строке, чтобы найти '/ t' и ''.
Благодарим за помощь заранее.
В чем ваш вопрос? –
То, как вы это делаете, кажется мне прекрасным! Если вы ищете способ сократить свой код, вы можете разместить символы, которые вы ищете, в структуре данных, а затем проверить каждый символ против него. Но ваша реализация выполняет свою работу. –
Я ищу, как решить эту проблему, не используя что-то вроде noskipws. Я хочу знать, как книга ожидает, что эта проблема будет решена с ограниченными вещами, которые они мне дали до сих пор. noskipws не воспитывается еще в 10 главах. –