通过读取文件检测 C++ 中的空行
Detecting a blank line in C++ from reading a file
我有一个包含以下数据的纯文本文件 (.txt);
data 5
data 7
data 8
我按以下方式阅读此文件:
ifstream myReadFile;
myReadFile.open(fileName.c_str());
if (myReadFile.is_open() != true){
return -1;
}
string stri;
int i;
while (std::getline(myReadFile,stri)){
i++;
if(stri.find("data") != std::string::npos){ //extract data}
else if(stri.empty()){ cout << "Conditional statement true"; }
else { cout << "invalid keyword on line: " << i; }
}
我总是收到无效的关键字消息,而且条件语句从不通过。我试过 if (stri == "") 和 (stri.compare("");
注意:可以安全地假设空行不包含空格。
这是查找似乎有问题的行内容的一种方法。
else {
cout << "invalid keyword on line: " << i;
size_t size = stri.size();
for ( size_t i = 0; i < size; ++i )
{
// Print the ASCII code of the character.
cout << "ASCII code: " << (int)stri[i] << std::endl;
}
}
从an ASCII code table中找出ASCII码代表什么。这将指示正在读入该行的内容。很可能是马车 return, \r
, ASCII 码 13
.
我有一个包含以下数据的纯文本文件 (.txt);
data 5
data 7
data 8
我按以下方式阅读此文件:
ifstream myReadFile;
myReadFile.open(fileName.c_str());
if (myReadFile.is_open() != true){
return -1;
}
string stri;
int i;
while (std::getline(myReadFile,stri)){
i++;
if(stri.find("data") != std::string::npos){ //extract data}
else if(stri.empty()){ cout << "Conditional statement true"; }
else { cout << "invalid keyword on line: " << i; }
}
我总是收到无效的关键字消息,而且条件语句从不通过。我试过 if (stri == "") 和 (stri.compare("");
注意:可以安全地假设空行不包含空格。
这是查找似乎有问题的行内容的一种方法。
else {
cout << "invalid keyword on line: " << i;
size_t size = stri.size();
for ( size_t i = 0; i < size; ++i )
{
// Print the ASCII code of the character.
cout << "ASCII code: " << (int)stri[i] << std::endl;
}
}
从an ASCII code table中找出ASCII码代表什么。这将指示正在读入该行的内容。很可能是马车 return, \r
, ASCII 码 13
.