我有一个程序可以逐行从文本文件中获取输入,执行一些修改然后将该行输出到另一个文件。我遇到一个错误,其中一些(不是全部)空白字符未打印到输出文件。解决这个问题的原因是:
getline(inFile,fileBuff);
- > getline(inFile,fileBuff,'?');
为什么将问号添加为分隔符可以解决问题?
编辑:这是一些输入文件:
VA PELCGBTENCUL N PNRFNE PVCURE NYFB XABJA NF PNRFNEF PVCURE GUR FUVSG PVCURE PNRFNEF PBQR BE PNRFNE FUVSG VF BAR BS GUR FVZCYRFG NAQ ZBFG JVQRYL XABJA RAPELCGVBA GRPUAVDHRF
(NYFB与XABJA之间的空间被忽略)
这是getline循环:
while(!inFile.eof()){
getline(inFile,fileBuff,'?');
for(unsigned int i=0; i<fileBuff.length(); i++){
if(fileBuff.at(i)>=65 && fileBuff.at(i)<=90){
cipherInt=(int)(fileBuff.at(i)-64);
plainInt=(cipherInt-13)%26;
if(plainInt<0)
plainInt+=26;
numFile << "(" << cipherInt << ")";
outFile << (char)(plainInt+64);
}else{
numFile << " ";
outFile << " ";
}
}
}