我想输入一个带有getline的分隔文本文件,但是当我调试它时,它显示我在变量的开头处有一个空字符。getline与分隔符存储空字符
这只发生在我的tID变量碰巧是每行中的第一个变量。当调试它示出了该作为字符数组:
[0] = '' [1] = '2' [2] = '3' [3] = '4'
这里是相关代码:
ifstream inFile("books.txt");
if (!inFile){
cout << "File couldn't be opened." << endl;
return;
}
while(!inFile.eof()){
string tID, tTitle, tAuthor, tPublisher, tYear, tIsChecked;
getline(inFile,tID, ';');
getline(inFile,tTitle, ';');
getline(inFile,tAuthor, ';');
getline(inFile,tPublisher, ';');
getline(inFile,tYear, ';');
getline(inFile,tIsChecked, ';');
library.addBook(tID, tTitle, tAuthor, tPublisher, tYear, (tIsChecked == "0") ? false : true);
}
这里有book.txt几行:
123;C++ Primer Plus; Steven Prata; SAMS; 1998;0;
234;Data Structures and Algoriths; Adam Drozdek; Course Technlogy; 2005;0;
345;The Art of Public Speaking; Steven Lucas;McGraw-Hill;2009;0;
456;The Security Risk Assessment Handbook; Douglas J. Landall;Auerbach;2006;1;
您可以打印字符数组的ASCII值吗?使用'printf(“%x”)'而不是'printf(“%c”)''。你可能在这里悬挂'\ r's。 – 2011-04-11 22:57:06