我已经坚持了一段时间。我正在尝试从文件中读取字符串。 该字符串包含注释(A,G,C,B等),后面可能跟有某些值。例如,当音符后跟'〜'时,音符的持续时间增加了20(A ~~将预设持续时间加40)。其他可能的输入: A(4)应该将频率改变+4。 B#应该将频率改变+20。
输入看起来像这样:B(4)~F#(5)~~~ Aa
我开始做以下操作,但我似乎无法弄清楚如何在注释后每增加一个'〜'来增加频率。
string a;
for (int i = 0; i < a.length(); a++)
{
if(a.at(i) == 'C')
{
frequency = 440;
duration = 10;
if(a.at(i++) == '~')
{
frequency += 20;
}
}
Values(frequency, duration)
}
答案 0 :(得分:0)
只有在a.at(i)== C时才会检测到'〜'循环中的点,并且只测试i ++。在条件中添加=='〜'循环:
if(a.at(i++) == '~'){
while(a.at(i) == '~'){
frequency += 20;
i++;
}
}