我正在逐行读取文件(示例如下所示),并且对于每一行,我使用 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;
}