Я читаю из файла (пример показан ниже) построчно, и для каждой строки я использую strtok, чтобы получить элементы, которые разделены на вкладки (как показано в коде). Теперь, когда я создаю файл с данными, я делаю это: введите «A», введите вкладку, введите «10» нажмите Ввод, и так далее. В этом случае, когда номер напечатан, за ним следуют странные символы, а иногда и буквы / цифры. «Патчем» для этой проблемы будет ввод данных следующим образом: введите «A», нажмите вкладку, введите «10» нажмите вкладку. Может кто-нибудь объяснить мне, почему это происходит, и есть ли лучший способ это исправить?
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;
}
Я не знаю, в чем причина проблемы, но я «исправил» ее, добавив символ табуляции («\ t») в конце каждой строки, которая читается из файла.
Других решений пока нет …