c - 如何用分号而不是点读取双精度值
问题描述
我有这些持续时间值,例如 1:23、2:45(2 分 45 秒)。我想将文件中的这些值读取到歌曲结构的持续时间字段中,如 1.23 和 2.45。有没有一种简单的方法可以做到这一点,或者我只需将分号更改为点并将其转换为双精度?(它将在 C 中)
解决方案
1 分 23 秒与 1.23 分钟不同。
一种方法:
int min, sec;
double dur = -1.0; // initialize to an invalid duration
if ( scanf( "%d:%d", &min, &sec ) == 2 )
{
dur = min + sec/60.0;
}
else
{
fprintf( stderr, "Invalid duration, try again\n" );
while ( getchar() != '\n' ) // clear out the input stream
; // empty loop
}
推荐阅读
- ms-access - 哪种云服务适合多用户 ms 访问应用程序?
- php - 创建一个包装 AWS 开发工具包的类
- javascript - 在 Windows 上运行 lint 后文件显示为已更改
- python - 如何解决“x 和 y 必须具有相同的第一维,但形状为 (1,) 和 (360,)?”
- python - Python Selenium,page_source即使在页面完全加载后也没有保存完整的html页面内容
- reactjs - 如何在打字稿中将generc定义为FC组件?
- python-3.x - Pandas 数据框 lambda 表达式:我可以在正则表达式中使用 AND 运算符吗?
- xamarin.forms - SkiaSharp 矩形的大小比 iOS 上的小
- python - 为什么显示“int”对象的代码不可下标?
- sql - 如何将存储过程查询结果输出到文本文件