示例#1
0
bool
CameraSystem::writeToDirectory(const std::string& directory) const
{
    if (!boost::filesystem::is_directory(directory))
    {
        boost::filesystem::create_directory(directory);
    }

    // write extrinsic data
    boost::filesystem::path extrinsicPath(directory);
    extrinsicPath /= "camera_system_extrinsics.txt";

    writeToTextFile(extrinsicPath.string());

    // write intrinsic data
    for (size_t i = 0; i < m_cameraVec.size(); ++i)
    {
        std::ostringstream oss;
        if (m_cameraVec.at(i)->cameraName().empty())
        {
            oss << "camera_" << i << "_camera_calib.yaml";
        }
        else
        {
            oss << m_cameraVec.at(i)->cameraName() << "_camera_calib.yaml";
        }

        boost::filesystem::path intrinsicPath(directory);
        intrinsicPath /= oss.str();

        m_cameraVec.at(i)->writeParametersToYamlFile(intrinsicPath.string());
    }

    return true;
}
int main()
{
    FILE *fp;
    int choice;
    int i=0;
    if ((fp = fopen("books.dat","rb+"))==NULL) //create binary file with blank records if file pointer returns NULL
    {
        printf("File does not exist\nCreating Binary File with blank records...");
        struct book blankBook = { "","",0,0,0.0,0.0};
        fp = fopen("books.dat","wb+");
        for ( i = 1; i <= 100; i++ ) //write 100 blank book structures
        {
            fwrite( &blankBook, sizeof( struct book ), 1, fp );
        }
        fclose ( fp );
        main();
    }
    else //menu
    {
        while ( ( choice = enterChoice() ) != 5 ) {

            switch ( choice ) {
            case 1:
                writeToTextFile( fp );
                break;
            case 2:
                updatePrice( fp );
                break;
            case 3:
                newBook( fp );
                break;
            case 4:
                deleteBook( fp );
                break;
            default:
                printf( "Incorrect choice\n" );
                break;
            }
        }

        fclose( fp );
    }

    return 0;
}