История изменений
Исправление
stevejobs,
(текущая версия)
:
#include <QCoreApplication>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
string str1 =" -18.6622 342.5735 ";
string str2 = " -18,6622 342,5735 ";
long double f;
long double ff;
sscanf(str1.c_str(),"%Lf %Lf",&f, &ff); //не верно
std::cout << f << std::endl << ff << std::endl;
sscanf(str2.c_str(),"%Lf %Lf",&f, &ff); //верно
std::cout << f << std::endl << ff << std::endl;
fgetchar();
}
странность вероятно в том, что на выходе будет:
-18.6622
342.5735
-18
342,5735
(второй раз отрезало дробную часть)
UPD: если забить на дробную часть, то всё работает отлично. Т.е. там, где у ТСа написано «не верно» у меня всё ОК
Исходная версия
stevejobs,
:
#include <QCoreApplication>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
string str1 =" -18.6622 342.5735 ";
string str2 = " -18,6622 342,5735 ";
long double f;
long double ff;
sscanf(str1.c_str(),"%Lf %Lf",&f, &ff); //не верно
std::cout << f << std::endl << ff << std::endl;
sscanf(str2.c_str(),"%Lf %Lf",&f, &ff); //верно
std::cout << f << std::endl << ff << std::endl;
fgetchar();
}
странность вероятно в том, что на выходе будет:
-18.6622
342.5735
-18
342,5735
(второй раз отрезало дробную часть)