Linux 命令tail手动实现

Linux 命令tail手动实现手动实现一个Linuxtail命令

大家好,又见面了,我是你们的朋友全栈君。

手动实现一个tail命令.默认输出十行.假如文件小于十行,则将文件全部输出.也可指定输出的行数.假如指定的行数超过了文件行数上限,则完整输出整个文件.

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
void tail(const char *filename,int count = 10)
{
	int realline = 0;
	char temp;
	string stackstr("");
	ifstream fd(filename);
	if(!fd)
	{
		cerr<<"open error!"<<endl;
		return;
	}
	while(fd.get(temp))
	{
		stackstr += temp;
		if(temp == '\n')
			realline++;
	}
	int j = 0;
	if(realline > count)
	{
		while(j < stackstr.length())
		{
			if(count == realline)
			{
				cout<<stackstr[j];
			}
			else
			{
				if(stackstr[j] == '\n')
					count ++;
			}
			j++;
		}

	}
	else
	{
		while(j < stackstr.length())
		{
			cout<<stackstr[j];
			j++;
		}
	}

}
int main(int argc,char**argv)
{
	tail("C:\\Users\\fjy\\Desktop\\new.txt",5);
	return 0;
}

tail函数第一个参数指定文件名,第二个参数指定输出的行数,默认为10.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144897.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 在CMD命令行中切换到管理员权限模式「建议收藏」

    在CMD命令行中切换到管理员权限模式「建议收藏」1、打开CMD2、输入:runas/noprofile/user:Administratorcmd3、输入Administrator账户的密码,必须设置密码PS:可以不是Administrator账户,只要是具有管理员权限的账号都可,例如ASUS等。runas/noprofile/user:ASUScmd然后输入ASUS账号的密码run…

    2022年10月16日
    2
  • 这也许是史上最有趣的破解软件合集

    这也许是史上最有趣的破解软件合集一,破解版百度网盘,下载速度超快,公众号回复【h01】即可获取。二,微信点赞工具,使用例子:新开的饭店呀,要你出示什么100个赞就可以吃霸王餐呀,根本不用徒劳朋友圈,直接用这软件就行,给你装备的机会,好好表演,公众号回复【h02】即可获取。三,微信群二维码采集助手,这个给那些微商需要引流的就很有作用啦,普通人可能用不到,公众号回复【h03】即可获取四,一款便捷图章制作工具,不想用PS,那这款软件就…

    2022年5月27日
    53
  • android studio 皮肤,Android Studio 自定义皮肤主题和背景

    android studio 皮肤,Android Studio 自定义皮肤主题和背景AndroidStudio自定义皮肤主题-ColorThemes最近有人问我,“你代码这是用的什么字体?看着好舒服”,其实这是用了自定义皮肤主题包,主题包下载网站http://color-themes.com/?view=index这个皮肤主题不仅可以在AndroidStudio上使用,也可以在WebStorm,PyCharm,RubyMine,PhpStorm,AppCode等好多开发工…

    2025年7月3日
    4
  • 中缀表达式转后缀表达式方法_后缀表达式怎么求值

    中缀表达式转后缀表达式方法_后缀表达式怎么求值前言数据结构与算法中经常遇到中缀表达式转前缀表达式的题目,网上的教程大都很不直观,自己学的时候,也走了很多弯路,现在把一个简单易懂的算法教程分享出来。中缀转后缀举个例子,一个式子:(5+20+1∗3)/14(5+20+1*3)/14(5+20+1∗3)/14如何把该式子转换成后缀表达式呢?其实就是分三步:1、按运算符优先级对所有运算符和它的运算数加括号,(原本的括号不用加)2、把运算…

    2025年7月22日
    0
  • linux 同步IO: sync、fsync与fdatasync

    linux 同步IO: sync、fsync与fdatasync传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的I/O操作。这种输出方式被称为延迟写(delayedwrite)(Bach

    2022年5月31日
    33
  • scratch文字朗读没有声音怎么办_pocketfiles怎样解密

    scratch文字朗读没有声音怎么办_pocketfiles怎样解密问题说明今天在使用pocketsphinx_continuous识别中文wav文件是,报如下错误:&gt;pocketsphinx_continuous-hmmzh_broadcastnews_ptm256_8000-lmzh_broadcastnews_64000_utf8.DMP-dictzh_broadcastnews_utf8.dic-infilemyfile…

    2022年10月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号