Я ищу способ отразить функциональность Fortran read(*,*)
в C ++, одновременно читая файлы в формате Fortran.Я знаком с и хотел бы использовать поток, подобный синтаксису, но я не уверен, как написать свой собственный / использовать поток, чтобы делать то, что мне нужно.У меня есть файлы со строками, такими как:
'Version' '5.3'
'This set has 1 member'
'Variable','nlo','EvolCode'
'list',1,1
1.E-05,1.,1.25,10000000.
0.00949 0.00208 -8.77372 0.89445 0.00000 0.00000 0.43318 0.89446
Как вы можете видеть, мне приходится иметь дело с различными разделителями (символ новой строки, пробел и запятая), а также убедиться, что при чтении в строках он учитывает кавычкиа также «забывает их» (т.е. они не заканчиваются как часть получающейся строки).
В фортране вы бы написали что-то вроде:
read(*,*) dummyString, versionString
read(*,*) descriptoinString
read(*,*) type, order, code
read(*,*) listType, number, repeats
read(*,*) double1, double2, double3, double4
read(*,*) a1, a2, a3, a4, a5, a6, a7, a8
В то время как результирующий C ++будет выглядеть так:
stream >> dummyString >> versionString;
stream >> descriptoinString
stream >> type >> order >> code
stream >> listType >> number >> repeats
stream >> double1 >> double2 >> double3 >> double4
stream >> a1 >> a2 >> a3 >> a4 >> a5 >> a6 >> a7 >> a8
Из моих базовых тестов с помощью stringstream он не может принимать несколько разделителей и хранит кавычки.
Каков наилучший способ действий?