【发布时间】:2012-12-11 05:13:15
【问题描述】:
我正在尝试读取仅包含字符串的文本文件。它正在编译和打开,但在读取时只显示与文件中的字符完全无关的垃圾。
谁能看出问题所在?
#include <iostream>
#include <fstream>
using namespace std;
fstream myfile;
char* input;
void main(void)
{
myfile.open("H://fstream_test.txt", fstream::in);
if(myfile.fail())
{
cout<<"error"; exit(0);
}
cout<<"file is open";
int beginning = myfile.tellg();
myfile.seekg(0, fstream::end);
int end = myfile.tellg();
int size = end-beginning;
cout<<size; //returns 15
input = new char[size];
myfile.read(input,size);
cout<<input;
//returns junk
//for(int i=0;i<size;i++)
//cout<<input[i];
//returns the same;
}
结束编辑为:
input = new char[size];
myfile.seekg(0, fstream::beg);
while(!myfile.eof())
{
myfile.read(input,size);
}
cout<<input;
system("pause");
【问题讨论】:
-
输入=新字符[大小];没有删除[]。那是内存泄漏。请改用标准库容器。
标签: c++