2016-04-08 5 views
0

鍵を入力したときに音を出すプログラムを作りたい。cプログラミングでデジタルピアノ(ビープ音機能を使用)

このようなプロセスは、データをキー&の .txtファイルから取得し、そのデータを配列に格納します。そして、私が作った関数 'findFrequency'と 'playpiano'を使って、キーを入力したときに音を出したい。

私が作ったコードは次のようである:

#include <stdio.h> 
#include <windows.h> 
#include <stdbool.h> 

#define NUM_NOTES 8 

char key_table[NUM_NOTES]; 
float freq_table[NUM_NOTES]; 

float findFrequency(const char note); 
void playpiano(void); 

void main() 
{ 
FILE *input_file = fopen("digitalpiano.txt", "r"); 

int num_keys; 
fscanf(input_file, "%d\n", &num_keys); 

printf("%d\n", num_keys); 

for (int i = 0; i < NUM_NOTES; i++) 
{ 
    char key; // I think I can delete this code 
    float freq; // I think I can delete this code 

    fscanf(input_file, "%c %f\n", &key_table[i], &freq_table[i]); 
    printf("%c %.3f\n", key_table[i], freq_table[i]); 

} 

fclose(input_file); 

while (true) 
    playpiano; 

} 


float findFrequency(char note) 
{ 
for (int i = 0; i < NUM_NOTES; i++) 
{ 
    if (key_table[i] == note) return freq_table[i]; 
} 
return 0.0f; 
} 

void playpiano(void) 
{ 
char ch = getch(); 
Beep(findFrequency(ch), 500); 

return; 
} 

しかし、私はこのコードを起動したとき、私はtxtファイルからのデータを表示することができます。しかし、私がキーを入力したときには何の音もないので、何も聞こえません。

そしてdigitalpiano.txtファイルは、このようなものです:

8 
a 261.626 
s 293.665 
d 329.628 
f 349.228 
g 391.995 
h 440.000 
j 493.883 
k 523.251 

答えて

1

あなたはplaypianoを呼び出していません。かっこを含める必要があります:playpiano();

関連する問題