因此,每当我使用while循环从文件中读取字符串时,总会有一个额外的空字符串,最后处理。 ifstream fin(" A7infile.txt");
while(getline(fin,line))
{
cout<<"Original Line: "<<line<<endl<<endl;
breakup(line,first,middle,last);
cout<<first<<" :is first"<<endl;
cout<<middle<<" :is middle"<<endl;
cout<<last<<" :is last\n"<<endl;
neww=makealpha(first,middle,last);
cout<<neww<<" :is the alphabetized line\n"<<endl;
}
fin.close();
return 0;
这就是我所说的空字符串
Original Line: lolipops And Rainbows
lolipops :is first
And :is middle
Rainbows :is last
And Rainbows lolipops :is the alphabetized line
Original Line:
:is first
:is middle
:is last
:is the alphabetized line
如何在最后一次传球中摆脱空字符串?
答案 0 :(得分:1)
std::string::empty
(reference)可用于检查std::string
是否为空。
因此,请检查line
是否为空,如果不是,请运行您的代码,否则不执行任何操作。
示例:
while (getline(fin, line))
{
if (!line.empty())
{
// Your logic here...
}
}
答案 1 :(得分:0)
如果您想在文件的末尾或中间跳过空行,可以在循环体上添加一个检查以跳过它们:
while(getline(fin,line)) {
if (line.empty()) {
continue;
}
// the rest of your code goes ehre
}