Я хочу проанализировать файл и использовать для анализа его содержимого. Я использую get()
, чтобы прочитать его символ по символу, который дает std::stringstream::int_type
. Теперь в некоторых случаях я хочу использовать таблицу поиска для преобразования символов ascii в другие значения (например, для предотвращения того, разрешен ли определенный символ в идентификаторе или нет).Всегда ли можно предположить, что значения .stream :: int_type are> = 0, за исключением eof
Теперь я могу предположить, что значения, которые я получаю от get()
, неотрицательны, если это не std::stringstream::traits_type::eof()
? (И, следовательно, используйте их как индексы для таблиц поиска).
Я не мог найти что-либо в стандарте относительно этого, что может быть из-за отсутствия понимания с моей стороны, как все эти байты для персонажей работают на C++.
'станд :: stringstream' является' станд :: basic_stringstream '' так использует char_traits 'поэтому ограничение "г. Член 'EOF()' возвращает 'EOF'." из [char.traits.specializations.char] применяется, а 'EOF' - отрицательный. –
@CharlesBailey, о, хотя вопрос был о 'std :: basic_stringstream' и поэтому дал более общий ответ, чем нужно, я его обновил. –
AProgrammer
Благодарим вас за ответ. Моя проблема хотя и меньше о знаке 'eof()', а скорее знаке символов ASCII (который я хочу использовать в качестве индексов для lookup_table). –