'?' getline中的分隔符修复错误但为什么?

时间:2014-02-27 00:26:46

标签: c++

我有一个程序可以逐行从文本文件中获取输入,执行一些修改然后将该行输出到另一个文件。我遇到一个错误,其中一些(不是全部)空白字符未打印到输出文件。解决这个问题的原因是:

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 << " ";
        }
    }
}

0 个答案:

没有答案