fopen(),string,c-str(),无法打开文件,源码如下。有劳各位大神看看 。不好意思,之前发的源码有问题

hellojjq 2013-08-07 01:34:04
void mfcc(string AudioName)
{

FILE *sourcefile;

ofstream outfile1("yuanshi.txt");
//cout<<AudioName<<endl; 此时可以输出 yuanshi.txt


sourcefile=fopen(AudioName.c_str (),"rb");//此处为要打开的音频文件。不是 .txt
if(sourcefile==NULL)
{
cout<<"Can't open yuanshi.wav"<<endl;
exit(0);
}
}
int main()
{
string strAu1="yuanshi.wav";//此处为要打开的音频文件。不是 .txt
cout<<strAu1<<endl;
mfcc(strAu1);
return 1;
}
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellojjq 2013-08-07
  • 打赏
  • 举报
回复
引用 8 楼 max_min_ 的回复:
[quote=引用 5 楼 hellojjq 的回复:] [quote=引用 4 楼 max_min_ 的回复:]

FILE *fopen(const char *path, const char *mode);
sourcefile=fopen(AudioName.c_str (),"rb");//此处为要打开的音频文件。不是 .txt
//,AudioName.c_str()干啥,
//直接这样试试
sourcefile=fopen(AudioName,"rb");
把所有的string类型都换了(包括主函数里的变量,函数形参),还是不行。。。[/quote] 是不是权限问题呢?没有打开操作的权限 用这个程序打开一个有权限的其他文件看看,能不能打开, 确定下是不是权限的问题![/quote] 问题找到了。之前直接录出来的是WMA文件类型,忘了转换,跟传递没关系。粗心大意了。真心感谢。
max_min_ 2013-08-07
  • 打赏
  • 举报
回复
引用 5 楼 hellojjq 的回复:
[quote=引用 4 楼 max_min_ 的回复:]

FILE *fopen(const char *path, const char *mode);
sourcefile=fopen(AudioName.c_str (),"rb");//此处为要打开的音频文件。不是 .txt
//,AudioName.c_str()干啥,
//直接这样试试
sourcefile=fopen(AudioName,"rb");
把所有的string类型都换了(包括主函数里的变量,函数形参),还是不行。。。[/quote] 是不是权限问题呢?没有打开操作的权限 用这个程序打开一个有权限的其他文件看看,能不能打开, 确定下是不是权限的问题!
大尾巴猫 2013-08-07
  • 打赏
  • 举报
回复
检查 .wav文件名,或者你换一个其他随便啥文件试试。
hellojjq 2013-08-07
  • 打赏
  • 举报
回复
引用 4 楼 max_min_ 的回复:

FILE *fopen(const char *path, const char *mode);
sourcefile=fopen(AudioName.c_str (),"rb");//此处为要打开的音频文件。不是 .txt
//,AudioName.c_str()干啥,
//直接这样试试
sourcefile=fopen(AudioName,"rb");
void mfcc(char* AudioName) { FILE *sourcefile; ofstream outfile1("yuanshi.txt"); //cout<<AudioName<<endl; 此时可以输出 yuanshi.txt sourcefile=fopen(AudioName,"rb");//此处为要打开的音频文件。不是 .txt if(sourcefile==NULL) { cout<<"Can't open yuanshi.wav"<<endl; exit(0); } } int main() { char strAu1[20]="yuanshi.wav";//此处为要打开的音频文件。不是 .txt cout<<strAu1<<endl; mfcc(strAu1); return 1; }
hellojjq 2013-08-07
  • 打赏
  • 举报
回复
引用 4 楼 max_min_ 的回复:

FILE *fopen(const char *path, const char *mode);
sourcefile=fopen(AudioName.c_str (),"rb");//此处为要打开的音频文件。不是 .txt
//,AudioName.c_str()干啥,
//直接这样试试
sourcefile=fopen(AudioName,"rb");
把所有的string类型都换了(包括主函数里的变量,函数形参),还是不行。。。
max_min_ 2013-08-07
  • 打赏
  • 举报
回复

FILE *fopen(const char *path, const char *mode);
sourcefile=fopen(AudioName.c_str (),"rb");//此处为要打开的音频文件。不是 .txt
//,AudioName.c_str()干啥,
//直接这样试试
sourcefile=fopen(AudioName,"rb");
hellojjq 2013-08-07
  • 打赏
  • 举报
回复
现在的问题是打不开wav 文件
hellojjq 2013-08-07
  • 打赏
  • 举报
回复
错误已更改,有劳大神们再给看看
hellojjq 2013-08-07
  • 打赏
  • 举报
回复
每次 都输出Can't open yuanshi.wav。 找了很多办法都解决不了,很无奈。 VC++,VC2008都不行。

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧