社区
C++ 语言
帖子详情
我想查找一个文本文件中的字符串所在的行并输出行数,在C++语言中,我应该怎么编程实现?在线急等!
Tonyfengliang
2006-04-18 10:27:44
我想查找一个文本文件中的字符串所在的行并输出行数,在C++语言中,我应该怎么编程实现?
...全文
895
10
打赏
收藏
我想查找一个文本文件中的字符串所在的行并输出行数,在C++语言中,我应该怎么编程实现?在线急等!
我想查找一个文本文件中的字符串所在的行并输出行数,在C++语言中,我应该怎么编程实现?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
mhisky
2006-05-10
打赏
举报
回复
Mark
weasea
2006-05-10
打赏
举报
回复
mark 2
aronzhou
2006-05-10
打赏
举报
回复
mark
jacky_cai
2006-04-18
打赏
举报
回复
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream in("text.txt");
string line;
string key = "string";
int linenum = 0;
while(getline(in, line))
{
if (line.find(key) != string::npos)
cout << linenum << " ";
linenum++;
}
return 0;
}
lonelyforest
2006-04-18
打赏
举报
回复
楼上好方法,和我以前作的一样,不过这样的话需要吧所有文件读入内存, 耗费比较大。
Tonyfengliang
2006-04-18
打赏
举报
回复
你说的很对的
不过它返回的是字符串
我现在要做的是输出字符串所在的行数。
那样要用什么函数啊
popy007
2006-04-18
打赏
举报
回复
//foo.cpp
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
void search(vector<string>& lines, string key) {
for(int i=0; i<lines.size(); ++i) {
if(lines[i].find(key) != string::npos) {
cout << "found the key in line " << i << endl;
}
}
}
int main() {
ifstream in("foo.cpp");
vector<string> lines;
string line;
while(getline(in, line)) {
lines.push_back(line);
}
search(lines, "string");
return 0;
}
heskyII
2006-04-18
打赏
举报
回复
如果不存在跨行匹配问题,逐行扫描,确定换行符个数,可使用STRSTR();
如果存在跨行匹配问题就稍微复杂点:可以自己考虑下
pandaxcl
2006-04-18
打赏
举报
回复
#if 0
在CSDN上有一个网友问道下面的这个问题:
我想查找一个文本文件中的字符串所在的行并输出行数!
在此我给出一个比较简洁的方案如代码CODE1所示:
#endif
#ifdef CODE1
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream in("data.txt");
const char*target="博客";//需要搜索的字符串
string tmp;
string::size_type index=0;
while(in>>tmp)
{
if(tmp.find(target)!=string::npos) break;
++index;
}
//文件的首行编号为0
cout << "[" << target << "]在文件中的的行号为:" << index << endl;
return 0;
}
#endif//CODE1
////////////////////////////////////////////////////////////
//该程序的运行结果为:
/***********************************************************
[博客]在文件中的的行号为:3
***********************************************************/
////////////////////////////////////////////////////////////
//所使用的数据文件为:
#if 0//这一行不是文件内容
我是熊猫
我还是国宝
我也是开心
我的博客:http://blog.csdn.net/pandaxcl/
#endif
////////////////////////////////////////////////////////////
另外请关注一下我得博客谢谢,在我的博客里面有你的这个问题的排版格式的回答。我写了很多实用的文章的:)敬请关注:)
http://blog.csdn.net/pandaxcl/
逸学堂
2006-04-18
打赏
举报
回复
lz看看C++ primer吧,
第六章,有一个完成的例子,实现lz要求的功能。
C++
的ASCII码文件和串函数
实现
的文本编辑器
C++
的ASCII码文件和串函数
实现
的文本编辑器.运用双链命令
行
中
指定输入文件名、
输出
文件名(
文本文件
); 将输入文件打开,读入输入缓冲区; 对输入缓冲区
中
的文件内容进
行
编辑,包括:显示当前文件内容、到第一
行
、到最后一
行
、到前一
行
、到下一
行
、到指定的某一
行
、插入一
行
、删除一
行
、替换当前
行
、替换某个子串、
查找
指定的某个子串、统计文件
行
数
及字符数、重新读入文件、保存当前文件、退出系统等操作
C++
匹配.txt文件
中
特定字符,并
输出
所在
行
内容
以上代码基于他人成果上整理得出,尚有不足之处,还需修改完善。
linux
查找
目录下的所有文件
中
是否含有某个
字符串
Linux
查找
文件内容的常用命令方法。 从文件内容
查找
匹配指定
字符串
的
行
: $ grep "被
查找
的
字符串
" 文件名例子:在当前目录里第一级文件夹
中
寻找包含指定
字符串
的.in文件grep "thermcontact" */*.in 从文件内容
查找
与正则表达式匹配的
行
: $ grep –e “正则表达式” 文件名
查找
时不区分大小写: $ grep –i "被
查找
的
字符串
" 文件名
查找
匹配的
行
数
: $ grep -c "被
查找
的
字符串
" 文件名 从文件内容
查找
不匹配指定
字符串
的
行
: $ grep –.
c++
获取 txt 文件
中
指定
行
数
之间的内容
从txt格式的
文本文件
中
获取指定区域的内容,并获得指定的值
利用
C++
读取文本最后一
行
信息
当文本数据太大的时候,如果
想
要获取的信息在最后一
行
,就需要从最后一
行
获取信息。下面是
一个
实现
该任务的代码。例子文本
中
保存的数据如下,先需要获取, 最后一
行
第
一个
数字3,因为其记录了文本总共的
行
数
信息。本例子先将文件流定位到文件末尾,然后依次向前进
行
换
行
符查询,找到第
一个
换
行
符,便找到最后一
行
的启始部分。从程序运
行
结果看,下面的文本大小一共为30字节,在每一
行
的末尾均有
一个
换
行
符。0 aaa 1 bb
C++ 语言
64,687
社区成员
250,498
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章