如果你的手机内置播放器支持显示歌词的话,就去网上下载LRC格式的同名歌词文件存入手机即可。可以去 网,非常全面,歌词一定要是LRC格式的。如果你的手机内置播放器不支持的话,那么你首先可以去下载一个应用程序,例如同步歌词秀,然后再参考说明下载歌词,大致同上。
你这样可以申请 二重指针类型的嘛比如说首先有一个 保存每行字符串指针的 数组, char * lines[1000]
然后再需要一行时, 你就动态申请 lines[i] = new char[length]
这是传统的 C 的做法, 用STL 就更简单了:
std::vector<std::string>container
然后每加一行 就 getline(s)cintainer.push_back(s)
#include <iostream>
#include <fstream>
#include <string>
using namespace std
void trans_file(ifstream&fin,ofstream&fout)
{
string buf
string::size_type pos_ti,pos_ar,beg,end
while(getline(fin,buf))
{
pos_ti=buf.find("ti")
pos_ar=buf.find("ar")
if(pos_ti!=string::npos)
{
buf.replace(pos_ti,strlen("ti"),"歌名")
fout<<buf.substr(1,buf.size()-2)<<endl
}
else if(pos_ar!=string::npos)
{
buf.replace(pos_ar,strlen("ar"),"歌手")
fout<<buf.substr(1,buf.size()-2)<<endl
}
else
{
beg=buf.find('[')
end=buf.find(']')
buf.erase(0,end+1)
fout<<buf<<endl
}
}
}
int main(void)
{
ifstream fin("lo.lrc")//要打开的文件
ofstream fout("lo.txt")//保存的文件
trans_file(fin,fout)
fin.close()
fout.close()
system("pause")
return 0
}
分类: 电脑/网络 >>程序设计 >>其他编程语言问题描述:
我知道LRC歌词的原理,就是根据歌词文件里面的标签来显示的嘛
但是编程的时候到底该怎么办?
先把全部文件读出、排序,还是等到要显示的时候再去找歌词?
怎样才能使得效率最高?
ps,要求尽量节省资源
请高人指点,谢谢!
解析:
一次性读到内存效率比较高,首先,LRC文件一般不会占用很大空间,不会占用过多的系统内存;其次,程序对内存的 *** 作效率远远高于对文件的读写 *** 作;再次,如果是等到要显示的时候再去找歌词,频繁的对文件进行读写 *** 作,反而会浪费更多的资源。所以推荐一次性读出、排序的方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)