我正在从一个文件(下面显示的示例)中逐行读取,并且对于每一行,我使用strtok来获取由制表符分割的元素(如代码所示)。现在,当我使用数据创建文件时,我这样做:键入“A”,键入tab,键入“10”按Enter ,依此类推。在这种情况下,当打印数字时,后面跟着奇怪的字符,有时候是字母/数字。此问题的“补丁”是按以下方式输入数据:键入“A”,按Tab键,键入“10”按Tab键。任何人都可以向我解释为什么会发生这种情况,有没有更好的方法来解决它?
sample.txt
A 10
B 20
C 30
//str contains a line of the file
char * pch = strtok (str,"\t");
//print character
if(pch !=NULL){
cout<<pch<<endl;
}
//print number
pch = strtok (NULL, "\t");
if(pch !=NULL){
cout<<pch<<endl;
}
答案 0 :(得分:0)
我不知道问题的原因是什么,但我通过在从文件读取的每一行的末尾添加一个制表符(“\ t”)来“修复”它。