首页 > 解决方案 > 如何用分号而不是点读取双精度值

问题描述

我有这些持续时间值,例如 1:23、2:45(2 分 45 秒)。我想将文件中的这些值读取到歌曲结构的持续时间字段中,如 1.23 和 2.45。有没有一种简单的方法可以做到这一点,或者我只需将分号更改为点并将其转换为双精度?(它将在 C 中)

标签: 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
}

推荐阅读