0
我正在做一個哈夫曼樹,我已經完成了我的工作。但是當我讀取一個字符時發生了一個問題,它在第一部分中讀取的是零而不是空格「」。在閱讀中的錯誤文件處理C++
這是代碼。在文件處理過程中,該錯誤發生在decode
函數中。
void huffmantree<h>::decode(){
CString *st;
hscll<h> * temp=new hscll<h>();
int h;
ifstream myfile;
myfile.open ("z://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaae.txt");
myfile >>h;
cout<<h;
for(int i=0;i<h;i++)
{char temp9[100];
char l;
myfile >>l;
temp->insert(l);
// myfile >> l ;
myfile >> temp9;
temp->atindex(i)->symboc.symbol=l;
temp->atindex(i)->code->setString(temp9);
//myfile >> '\n';
}
_getch();
//CString u;
//char k;
//int p=0;
//for(int i=0;i<st->m_length;i++)
//{
// for(int j=0;j<8;j++)
// {
//
// char a;
// a=st->charAt(i);
// int temp=1;
// if(j==0)
// temp=1;
// if(a!='0')
// {
// for(int y=0;y<j;y++)
// {
// temp*=2;
// }
// p+=temp;
// }
// else
// {
// p+=0;
//
// }
// i++;
// cout<<a;
// }
// k=p;
// char t=7;
// //cout<<" "<<t<<" "<<p<<endl;
// myfile << k;
// p=0;
// u.addcharbychar(k);
//}
////cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<u.getString();
////cout<<endl<<endl<<endl<<"the length is =="<<u.m_length<<endl;
myfile.close();
}
可以通過使用['std :: ws'](http://en.cppreference.com/w/cpp/io)來避免空白/ manip/ws) – rubenvb
你的意思是'std :: noskipws'; 'std :: ws'顯式跳過空格。你可以,但使用爲這類工作設計的功能更自然。 –
是的,'std :: noskipws'。不知何故,我認爲這是一個二進制切換...我的錯誤。 – rubenvb