変数への数値のコピーは等式による代入で可能です。
sscanfによる読み込みにおいて3番目の引数は格納先のポインタであり、数値の場合は変数名に&を付け(&horseID)、文字列の場合は変数名(horse_name)そのままとなります。
正確には&horse_name[0]ですが、horse_nameは同じ内容とのことです。また&horse_nameとしてもエラーにはなりません。
<過去コードの該当箇所>
int horseID;
int id;
char horse_name[50];
while(fgets(buf,100, fp ) != NULL ) {
sscanf(buf, "%d, %s",&horseID,horse_name) ; // &horse_nameでも可
if (i != 0){
if (strcmp(horse_name,horse_name_in)==0){
id = horseID; // 数値のコピー
printf("コピー完了 %d %s\n",id,horse_name);
break;
}
}
i ++ ;
}