#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { FILE* fp1;//定义文件指针用于读文件 char* fp2;//用来判断是否歌词读完 char s[80];//暂存歌词 long int time2=0; long int time=0;//用来计算时间,精度为秒,不够完善,望高人指点 int a=1;//起判断作用 fp1=fopen("/Users/qingyun/Desktop/追梦赤子心.lrc","r");//已直读方式打开,路径可以宏定义 fgets(s,1000,fp1); //为了输出歌名 while(a) { a++; if(s[a]==']') { break; } } s[a]='\0'; printf("歌曲名:%s\n",&s[3]); sleep(3); fgets(s,1000,fp1); //为了输出歌手名 a=1; while(a) { a++; if(s[a]==']') { break; } } s[a]='\0'; printf("歌手:%s\n",&s[3]); sleep(3); fgets(s,1000,fp1); //因为有的歌词还有其他的属性,为了兼容性只输出歌名和歌手名,接着就是歌词 while(s[1]!='0') { fgets(s,1000,fp1); } while(fp2!=NULL)//判断歌词是否读完 { time=(s[1]-'0')*60000+(s[2]-'0')*6000+(s[4]-'0')*1000+(s[5]-'0')*100+(s[7]-'0')*10+(s[8]-'0')*1; printf("%s",&s[10]); while(time>time2) { sleep(1); time2+=100; } fp2=fgets(s,1000,fp1); } fclose(fp1);//关闭文件 return 0; }