Я пытаюсь извлечь числа из строки. Я хотел бы сохранить каждое число в отдельной двойной переменной. В настоящее время я пытаюсь использовать простой строковый поток, подобный этому.C++ Как извлечь числа из строки с обратной косой чертой?
std::string line = "100.2456426246\200.2624362436\300.136213477347";
std::stringstream stream(line);
stream.precision(20);
double a,b,c;
stream >> a >> b >> c;
не только точность неправильно (только печатает 6 цифр), он извлекает только первое число а (100,245), и б и является недействительным. Я подозреваю, что это связано с обратным слэшем, но я не совсем уверен.
Каков наилучший способ прочитать строку, содержащую обратную косую черту между каждым номером и правильную точность хранения целого числа?
Как он мог знать, что вы хотите разделить строку на косые черты? – Drop
Для «всего 6 цифр»: [Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой] (https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) – Drop
Строка ' "100.2456426246 \ 200.2624362436 \ 300.136213477347" 'не содержит обратных косых черт! Но он содержит некоторые необычные символы, отличные от ASCII. – immibis