Kun*_*ngi 2 c floating-point printf fixed-length-record
我正在尝试创建一个具有以下结构的文件:
- 每行有 32 个字节 - 每行看起来像这样的格式字符串:“%10i %3.7f %3.7f\n”
我的问题如下:当我有一个负浮点数时,该行会变长一个甚至两个字符,因为 - 符号不计入“%3.7f”。
还有比这更好的方法吗?
if( node->lng > 0 && node->lat > 0 ) {
sprintf( osm_node_repr, "%10i %3.7f %3.7f\n", node->id, node->lng, node->lat );
} else if (node->lng > 0 && node->lat < 0) {
sprintf( osm_node_repr, "%10i %3.7f %3.6f\n", node->id, node->lng, node->lat );
} else if (node->lng < 0 && node->lat > 0) {
sprintf( osm_node_repr, "%10i %3.6f %3.7f\n", node->id, node->lng, node->lat );
} else if ( node->lng < 0 && node->lat < 0 ) {
sprintf( osm_node_repr, "%10i %3.6f %3.6f\n", node->id, node->lng, node->lat );
}
Run Code Online (Sandbox Code Playgroud)
感谢您的回答,
安德烈亚斯