gpt4 book ai didi

c++ - 读取文件时有问题的空格

转载 作者:行者123 更新时间:2023-11-28 07:35:56 25 4
gpt4 key购买 nike

我正在用这段代码解析一个 html 文档:

ifstream myfile("file.html");

string line;
int m_lines;
char c;

while(getline(myfile,line)) {
if(line.empty()) {
m_lines++;
continue;
}
istringstream iss(line);

while(iss.good()) {
c = iss.get();
//my code here (not important for this question)
cout << c;
}


m_lines++;
}

输入文件 (file.html) 如下所示:

<p>Lorem ipsum <strong>haha</strong> gfadf.</p>
<img src="image.jpg" alt="alt" />

输出:

<p>Lorem ipsum golo gama<strong>haha</strong> gfadf.</p> <img src="image.jpg" alt="alt" />
^
^
^

如果输入文件中有一个新行,它会打印一个空白字符。如何跳过或删除这个字符?

最佳答案

您的流中没有换行符,当 getline 被调用时,它提取字符直到换行符。 iss.get() 正在返回 end-of-file 因为没有更多的字符可以提取。您可以使用以下代码进行检查:

while(iss.good()) {
c = iss.get();
if (c == std::char_traits<char>::eof())
{
cout << "end of file!";
}
else
{
cout << c;
}
}

关于c++ - 读取文件时有问题的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16771252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com