注册 登录
编程论坛 C++教室

【求助】c++中的文件操作,编译通过但是运行报错

wannabe 发布于 2008-09-09 10:19, 479 次点击
才学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]]
0 回复
1