0

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

1 回答 1

0

我不知道问题的原因是什么,但我通过在从文件读取的每一行的末尾添加一个制表符(“\t”)字符来“修复”它。

于 2013-03-30T04:18:28.787 回答