diff --git a/main.cpp b/main.cpp
index ccf9284b9411b96b62fb169a30c0c61f42e2aa35..a322c4707a69457e38df7e1e981ee3a657c4f327 100644
--- a/main.cpp
+++ b/main.cpp
@@ -1,3 +1,4 @@
+#include <cstdlib>
 #include <filesystem>
 #include <fstream>
 #include <ios>
@@ -51,15 +52,31 @@ void txt2pcd( std::filesystem::path input, std::filesystem::path output )
             {
                 pcl::PointXYZRGB point;
 
-                inputFile >> point.x;
-                inputFile >> point.y;
-                inputFile >> point.z;
+                std::string buf;
+
+                inputFile >> buf;
+                point.x = std::atof( buf.c_str() );
+                buf.clear();
+
+                inputFile >> buf;
+                point.y = std::atof( buf.c_str() );
+                buf.clear();
+
+                inputFile >> buf;
+                point.z = std::atof( buf.c_str() );
+                buf.clear();
 
                 int r, g, b;
 
-                inputFile >> r;
-                inputFile >> g;
-                inputFile >> b;
+                inputFile >> buf;
+                r = std::atoi( buf.c_str() );
+                buf.clear();
+                inputFile >> buf;
+                g = std::atoi( buf.c_str() );
+                buf.clear();
+                inputFile >> buf;
+                b = std::atoi( buf.c_str() );
+                buf.clear();
 
                 point.r = static_cast<char>( r );
                 point.g = static_cast<char>( g );