【求助】c++中的文件操作,编译通过但是运行报错
才学C++不久问题如上,本想打开一个文件,进行文档编辑,但是好像打开的时候不行,又使用了ASSERT函数,应该是这里,系统就报错了
希望哪位DD能帮忙看看
我的目的是想要把这下面一行字的前面的Dialogue: Marked=0,0:00:36.01,0:00:37.88,Default,说话人,0000,0000,0000,,去掉的。
Dialogue: Marked=0,0:00:36.01,0:00:37.88,Default,说话人,0000,0000,0000,,つばさが痛い
以下是我编写的代码
#include<iostream>
#include<fstream>
#include<string>
#include<cassert>
#include<cfloat>
using namespace std;
int main()
{
string count;
string outputFlieName;
string inputFlieName;
string text;
char type;
/*********************************输出文件***********************/
cout<<"请输入要处理的文件名"<<endl;
getline(cin,inputFlieName);
system("pause");
cout<<"请输入要输出的文件名"<<endl;
getline(cin,outputFlieName); //如何清除流中的不必要键
cin.sync();
ifstream inStream;
inStream.open(inputFlieName.data());
ofstream outStream;
outStream.open(outputFlieName.data());
assert(inStream.is_open()&&outStream.is_open());
for(;;)
{
getline(inStream,text);
if (inStream.eof() )
break;
int i=text.capacity();
text.find_last_of(",",i); //找到最后一个逗号的位置。
text.erase(0,i); //删除逗号前面的字符。
outStream<<text<<endl; //
}
outStream.close();
inStream.close();
cout<<"Processing coplete.\n";
return 0;
}
运行错误是:
Debug Asertion Failed!
Program:D:\字幕处理.exe
File:fopen.c
Line:54
Expression:*file !=_T('\0')
For information on how your program can cause an aserts failure,see the Visual C++ documentation on asserts.
[[it] 本帖最后由 wannabe 于 2008-9-9 10:25 编辑 [/it]]