c++读取txt文件,读到开头是含有字符“《”的,就删除包含该字符在内的整行,接着继续读下一行。
类似于:abcdefg《abcedcdfurhekd《ddsadfdsd《ddd程序运行后,变成:abcdefgcdfurhekddsd《ddd也就是删除了开头是“《”的...
类似于:
abcdefg
《abced
cdfurhekd
《ddsadf
dsd《ddd
程序运行后,变成:
abcdefg
cdfurhekd
dsd《ddd
也就是删除了开头是“《”的第二行和第四行
形式是这样。因为文本文件非常大,里面有很多类似的开头是某个字符,就要把该行全部删掉跳到下一行的。请大神帮忙解答问题,就用上面这个简短的例子试试。不胜感激!
解决问题的话可以加分,多谢! 展开
abcdefg
《abced
cdfurhekd
《ddsadf
dsd《ddd
程序运行后,变成:
abcdefg
cdfurhekd
dsd《ddd
也就是删除了开头是“《”的第二行和第四行
形式是这样。因为文本文件非常大,里面有很多类似的开头是某个字符,就要把该行全部删掉跳到下一行的。请大神帮忙解答问题,就用上面这个简短的例子试试。不胜感激!
解决问题的话可以加分,多谢! 展开
展开全部
#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
using namespace std;
void r(const char* str){
ifstream file(str);
if (!file.is_open())
{
cout << 0 << endl;
return;
}
string st1;
string ans;
while (getline(file,st1))
{
int flag ;
istringstream ss(st1);
while (ss>>ans)
{
flag = 0;
if( ans[0]>='a'&&ans[0]<='z')
cout << ans;
else {
flag = 1;
continue; }
}
if (flag==0)
cout << endl;
}
}
int main(){
r("1.txt");
cin.get();
}
更多追问追答
追问
如果是汉字呢?大神~
《终南望余雪》唐 祖咏
终南阴岭秀,积雪浮云端。
林表明霁色,城中增暮寒。
《静夜思》唐 李白
床前明月光,疑是地上霜。
举头望明月,低头思故乡。
修改后变成:
终南阴岭秀,积雪浮云端。
林表明霁色,城中增暮寒。
床前明月光,疑是地上霜。
举头望明月,低头思故乡。
然后把结果输出到文件“2.txt”
感谢大神,可追加100分。
追答
你试试char str[]吧。不知string能不能处理汉字。就读一行。ans[0]是那个框框就跳过。不是就输入文件里
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
必须是C++语言写吗??
追问
您如果用C的话也可以。感谢赐教!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询