Я преподаю сам C++ и ищу, как это сделать. Позвольте мне привести пример, чтобы прояснить мое намерение.C++ Как читать txt-файл и извлекать числовые значения, кроме строки (и наоборот)
Это txt-файл, и содержание соответствует.
Matt 18 180.0 88.5
Angela 20 155.5 42.2
В каждом ряду содержится информация об имени, возрасте, высоте и весе лица.
Что я пытался сделать, так это получить эти 4 типа информации отдельно и сохранить их в разных переменных на основе типа информации.
vector<string> name; //"Matt" or "Angela" are stored here.
vector<int> age; //18 or 20
vector<double> height; //The same logic goes for this vector and the next one
vector<double> weight;
По крайней мере, я обнаружил, что информация в текстовые файлы могут быть сохранены в строковых переменных с помощью ifstreamObject.open(filename.c_str())
и getline(ifstreamObject, string)
. Однако, используя этот метод, я бы получил только строковые значения, которые соответствуют каждой строке. Другими словами, я не могу отличить строковые значения от числовых значений.
Скорее всего, нет другого способа получить информацию из txt-файлов. Тем не менее, на всякий случай, я хотел бы спросить здесь, как получить информацию таким образом, прежде чем я сдадусь.
Любые советы будут оценены.
Большое спасибо. Могу ли я задать еще один вопрос? Оператор '>>', очевидно, разделяет каждый строковый блок (в приведенном выше примере каждый строковый блок может быть «Matt», «18», «180.0» и т. Д.), Исходя из того, есть ли пробел или нет. Я также думаю, что мне нужно поместить имя переменной между '>>', чтобы обнаружить каждый строковый блок. Я прав? Googling 'C++ ifstream >> operator' показывает результаты, которые связаны с' C++ istream >> operator', а не 'ifstream'. – Hiroki
@YMD да, это правильно. И оператор извлечения наследуется от 'istream' (который является базовым классом' ifstream'). – vsoftco
Я вижу. Еще раз спасибо вам большое :) – Hiroki