Чтение одного символа из fstream?

Я пытаюсь перейти от stdio к iostream, что оказывается очень трудным. У меня есть основы загрузки файла и его закрытия, но я действительно не имею ни малейшего представления о том, что такое поток, или как они работают.

В stdio все относительно просто и понятно по сравнению с этим. Что мне нужно сделать, так это

  1. Прочитать один символ из текстового файла.
  2. Вызов функции на основе того, что это за символ.
  3. Повторяйте, пока я не прочту все символы в файле.

Пока что у меня есть ..не так много:

int main()
{
    std::ifstream("sometextfile.txt", std::ios::in);
    // this is SUPPOSED to be the while loop for reading.  I got here and realized I have 
    //no idea how to even read a file
    while()
    {
    }
return 0;
}

Что мне нужно знать, так это то, как получить один символ и как этот символ на самом деле сохраняется (это строка? int? char? Могу ли я решить для себя, как его хранить?)

Как только я узнаю, что думаю, я справлюсь с остальным. Я сохраню персонажа в соответствующем контейнере, а затем воспользуюсь переключателем, чтобы делать что-то в зависимости от того, что это за персонаж на самом деле. Это выглядело бы примерно так.

int main()
{
    std::ifstream textFile("sometextfile.txt", std::ios::in);

    while(..able to read?)
    {
        char/int/string readItem;
        //this is where the fstream would get the character and I assume stick it into readItem?
        switch(readItem)
        {
        case 1:
            //dosomething
              break;
        case ' ':
            //dosomething etc etc
              break;
        case '\n':
        }
    }
return 0;
}

Обратите внимание, что мне нужно проверять наличие пробелов и новых строк, надеюсь, это возможно. Также было бы удобно, если бы вместо одного универсального контейнера я мог хранить числа в int и символы в char. Я могу обойти это, если нет.

Спасибо всем, кто может объяснить мне, как работают потоки и что с ними возможно.

8
задан Jcrack 7 February 2012 в 13:12
поделиться