ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
Why not just use the C++ api to read file ?
#include <fstream>
#include <streambuf>
#include <string>
#include <cerrno>
std::string get_file_contents(const char *filename)
{
std::ifstream in(filename, std::ios::in | std::ios::binary);
if (in)
{
return(std::string((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>()));
}
throw(errno);
}
2 | No.2 Revision |
Why not just use the C++ api to read file ?
#include <fstream>
#include <streambuf>
#include <string>
#include <cerrno>
std::string get_file_contents(const char *filename)
{
std::ifstream in(filename, std::ios::in | std::ios::binary);
if (in)
{
return(std::string((std::istreambuf_iterator<char>(in)), std::istreambuf_iterator<char>()));
}
throw(errno);
}
Check if your file exist, of course it depends also of the content of the file. With a data file like that :
0 1 2 3 4 5 6 7 8
It's works with this piece of code :
#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
int main()
{
std::ifstream file("test.txt");
std::vector<int> data;
int a[3][3];
std::memset(a, 0, sizeof(a[0][0]) * 3 * 3);
if(file.is_open())
{
for(int i=0;i<3 && file.good() ;i++)
{
for(int j=0;j<3 && file.good() ;j++)
{
file >> a[i][j];
}
}
}
else std::cerr<<"File not found !"<<std::endl;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
std::cout<<a[i][j]<<" ";
return 0;
}