我的程序接受来自用户的号码以确定正在记录的序列的长度。我如何获取该数字,并让它确定执行此循环的次数。虽然(true)显然不允许循环结束。
提前致谢
这是从midi输入合成声音的功能
void midisound (int note)
{
int velocity;
int playingNote = -1;
float frequency;
while(true)
{
note = aserveGetNote();
velocity = aserveGetVelocity();
if(velocity > 0)
{
frequency = 440 * pow(2, (note-69) / 12.0);
aserveOscillator(0, frequency, 1.0, 0);
playingNote = note;
}
else if(note == playingNote)
{
aserveOscillator(0, 0, 0, 0);
}
}
}
---here is where function ^ is called in the program----
if (reclayer == 1)
{
//open first text file for layer 1 to be written to
textFilePointer = fopen("recording1.txt", "w+");
if(textFilePointer == NULL)
{
printf("Error Opening File!");
}
else
{
//function call to write notes and vel data
notetofile(input, seqlen, reclayer);
printf("Would you like to record a second layer or re-record? (y or n)\n");
scanf(" %c", &choice2);
}
}
答案 0 :(得分:0)
使用for循环。
for ( i = 0; i < note; i++ ) {
// Your code here
}
这将执行&#39;注意&#39;次数。
答案 1 :(得分:0)
使用可以使用scanf()
功能从控制台输入用户编号:
void midisound (int note) {
int input;
int velocity;
int playingNote = -1;
float frequency;
printf("Enter integer number of times to loop: ");
scanf("%d", &input);
while(input > 0) {
input = input - 1;
note = aserveGetNote();
velocity = aserveGetVelocity();
if(velocity > 0) {
frequency = 440 * pow(2, (note-69) / 12.0);
aserveOscillator(0, frequency, 1.0, 0);
playingNote = note;
} else if(note == playingNote) {
aserveOscillator(0, 0, 0, 0);
}
}
}
答案 2 :(得分:0)
在第一次获取时,从用户编号的时间循环输入的数字将运行使用
for(i = 0; i&lt; max; i ++)
答案 3 :(得分:0)
首先指定一个变量,该变量包含您想要重复它的次数。例如,我们来看int n = 5;
。 (您也可以通过调用n
让用户输入scanf( "%d " , &n );
的值(因为这就是您所要求的),然后进行其余操作)
int n ;
scanf( "%d " , &n );
您可以将此作为我以下所有案例的通用
然后,只需添加一个简单的for循环,例如
int i;
for ( i = 0 ; i < n ; i++ )
{
// The code that you want to repeat
}
这应该可以解决问题。
如果你想使用while循环,那么像以前一样,让n
成为循环必须执行的次数。然后
int i=0;
while ( i < n )
{
// Your code
i++;
}
您也可以使用while ( true )
循环,但您只需提供条件并使用break;
。让我们举个例子。
int i=0;
while ( true )
{
// your code
i++;
if ( i == n )
break;
}
这些只是许多不同的可能性。如果你尝试,你甚至可以提出自己的条件。
快乐的编码.... 8 - )