title: Counting spaces, tabs and new lines using while ( cin >> )
body: <p>Im having trouble with my programm that should count every symbol in a string that the user sent to the stream. It counts consonants, vowels, 'ff', 'fl', 'fi' and '\t', '\n' and ' '. The problem is that the programm works pretty good, but still doesnt count spaces, tabs and new lines. I've tried to use noskipws manipulator but it doesnt read anything untill the first word.</p>
  
  <p>Here it is:</p>
  
  <pre><code>int aCnt=0, eCnt=0, iCnt=0, oCnt=0, uCnt=0,
  consonantCnt=0;
  
  int ffCnt = 0, flCnt = 0, fiCnt = 0;
  
  int spaceCnt = 0, newlCnt = 0, tabCnt = 0;
  
  char *check = new char[100];
  
  while ( cin &gt;&gt; check ) {
  
  for ( int ix = 0; ix &lt; strlen(check); ++ix ) {
  
   switch ( check[ix] ) {
      case 'a': case 'A':
        ++aCnt;
        break;
      case 'e': case 'E':
        ++eCnt;
        break;
      case 'i': case 'I':
        ++iCnt;
        break;
      case 'o': case 'O':
        ++oCnt;
        break;
      case 'u': case 'U':
        ++uCnt;
        break;
      case ' ':
        ++spaceCnt;
        break;
      case '\t':
        ++tabCnt;
        break;
      case '\n':
        ++newlCnt;
        break;
      default:
        if ( isalpha( check[ix] ) )
            ++consonantCnt;
        break;
  }
  
    if ( check[ix] == 'f' ) {
      ++ix;
         switch ( check[ix] ) {
             case 'f':
                ++consonantCnt;
                ++ffCnt;
                break;
              case 'i':
                ++fiCnt;
                ++iCnt;
                break;
              case 'l':
                ++consonantCnt;
                ++flCnt;
                break;
              case 'I':
                ++iCnt;
                break;
              case 'a': case 'A':
                ++aCnt;
                break;
              case 'e': case 'E':
                ++eCnt;
                break;
              case 'o': case 'O':
                ++oCnt;
                break;
              case 'u': case 'U':
                ++uCnt;
                break;
              case ' ':
                ++spaceCnt;
                break;
              case '\t':
                ++tabCnt;
                break;
              case '\n':
                ++newlCnt;
                break;
  
              default:
                 if ( isalpha( check[ix] ) )
                 ++consonantCnt;
                 break;
        }    
      } 
    }
  }
  
  delete [] check;
  
  cout &lt;&lt; "Встретилась a: \t" &lt;&lt; aCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилась e: \t" &lt;&lt; eCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилась i: \t" &lt;&lt; iCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилась o: \t" &lt;&lt; oCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилась u: \t" &lt;&lt; uCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилось согласных: \t" &lt;&lt; consonantCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилось fl: \t" &lt;&lt; flCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилось fi: \t" &lt;&lt; fiCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилось ff: \t" &lt;&lt; ffCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилось символов табуляции: \t" &lt;&lt; ffCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилось символов пробела: \t" &lt;&lt; ffCnt &lt;&lt; '\n'
  &lt;&lt; "Встретилось символов новой строки: \t" &lt;&lt; ffCnt &lt;&lt; '\n'
  &lt;&lt; '\n';
  </code></pre>