c++之从标准流中提取文本数据

istream & istream :: get ( char * ,  int ,  char = ‘\n‘ ) ;

istream & istream :: getline ( char * ,  int ,  char = ‘\n‘ ) ;

作用:从文本中提取指定个数的字符,并在串数组末添加一个空字符

其中,第一个参数指向接受字符数据的字符数组

第二个参数指定字符数组最多可容纳的字符个数

第三个参数用于指定一个终止符,缺省为换行符

操作遇到终止符或提取到规定个数字符时,提取终止

区别:  get ( ) 不从流中提取终止字符,终止字符仍在输入流中

getline ( ) 从流中提取终止字符,但终止字符被丢弃

 1 #include<iostream>
 2 using namespace std;
 3 int main ( )
 4 { char  buf [ 80 ] ;
 5    cin.get ( buf , 80 , ‘y‘ ) ;        //指定终止符
 6    cout << buf << endl ;    //默认终止符‘\n‘
 7    cin.get ( buf , 80 ) ;
 8    cout << buf << endl ;
 9    cin.getline ( buf , 80 , ‘n‘ ) ;
10    cout << buf << endl ;
11    cin.get ( buf , 80 ) ;
12    cout << buf << endl ;
13    return 0;
14 }
 1 #include<iostream>
 2 #include<fstream>
 3 using namespace std;
 4 int main ( )
 5 { ifstream  inf ( "d:\\testnew" ) ;
 6    char  buf [ 80 ] ;
 7    inf.getline ( buf, 80 ) ;
 8    cout << buf << "____" << inf.gcount() << endl ;
 9    inf.get( buf, 80 ) ;
10    cout << buf << "____" << inf.gcount() << endl ;
11    inf.close () ;
12 }
时间: 2024-10-13 23:34:34

c++之从标准流中提取文本数据的相关文章

3.6 盒子在标准流中的定位原则

如果要精确地控制盒子的位置,就必须对margin有更深入的了解.padding只存在于一个盒子内部.所以通常它不会涉及与其他盒子之间的关系和相互影响的问题.margin则用于调整不同的盒子之间的位置关系,因此必须要对margin在不同情况下的性质有非常深入的了解. 一.实验1——行内元素之间的水平margin 这里来看两个块并排的情况,如图1所示. 图1 行内元素之间的margin 当两个行内元素紧邻时,它们之间的距离为第1个元素的margin-right加上第2个元素的margin-left,

SQLServer 从xml 文件中提取节点数据到数据库中

原文出处:http://blog.csdn.net/kk185800961/article/details/12350715  转载请注明出处 XML实例文件: <?xml version="1.0" encoding="utf-8"?> <!-- edited with XMLSpy v2010 (http://www.altova.com) by fengshuai (founder) --> <Root> <Frame

用PDFMiner从PDF中提取文本文字

1.下载并安装PDFMiner 从https://pypi.python.org/pypi/pdfminer/下载PDFMineer wget https://pypi.python.org/packages/57/4f/e1df0437858188d2d36466a7bb89aa024d252bd0b7e3ba90cbc567c6c0b8/pdfminer-20140328.tar.gz#md5=dfe3eb1b7b7017ab514aad6751a7c2ea 加压并安装 tar -zxvf

手动实现如何从H264流中提取SPS/PPS信息

1,代码比较简单,可以直接用了.流的第一个NALU一定是SPS void get_sps_pps_nalu(uint8_t *data, int len, std::vector<uint8_t> &sps, std::vector<uint8_t> &pps) { const uint8_t* pkt_bgn = data; const uint8_t* pkt_end = pkt_bgn + len; const uint8_t* pbgn = pkt_bgn;

从一个标准URL中提取文件的扩展名

例如:http://www.sina.cn/abc/de.php?id=1  提出php 1. $url = 'http://www.sina.cn/abc/de.php?id=1'; $arr = parse_url($url); $filepath = $arr['path'];//文件路径  /abc/de.php $filename = basename[$fielpath];// 文件名de.php $ext = explode('.',$filename); $ext = $ext[

在日期控件中提取日期数据,并在另一个文本框中显示其年份加1 |

<td class="back">启用日期: <input id="vc_fdate" name="vc_fdate" type="text" class="easyui-datebox form-control" value=""/> 截止日期: <input id="vc_tdate" name="vc_tdate"

QT中读取文本数据(txt)

下面的代码实现读取txt文档中的数据,并且是一行一行的读取. void MainWindow::on_pushButton_clicked() { QFile file("abcd.txt"); if(! file.open(QIODevice::ReadOnly|QIODevice::Text)) qDebug()<<file.errorString(); else qDebug()<<"openok"; file.seek(0); QTe

流编辑器sed使用总结及利用sed从文本中提取字符串的方法

sed 是一个编辑器,但它与其它大多数编辑器不同.除了不面向屏幕之外,它还是非交互式的,我们常用的vim编辑器则是交互式的. 这意味着必须将要对数据执行的命令插入到命令行或要处 理的脚本中.sed 在一个文件(或文件集)中非交互式.并且不加询问地接收一系列的命令并执行它们.因而,它流经文本就如同水流经溪流一样,因而 sed 恰当地代表了流编辑器,可以对文件或者文件集批量的进行删除 替换 插入 追加等操作. 流编辑器非常适合于执行重复的编辑,这种重复编辑如果由人工完成将花费大量的时间. 其参数可能

C#正则表达式提取文本中以逗号间隔的数据

使用正则表达式提取文本数据到内存是很方便的技术,下面通过一个例子介绍一下如何使用正则表达式提取文本 文本中内容格式 1,2,3,4,5 2,2,2,2,2 3,3,3,3,3 C#代码如下 public List<List<string>> GetDataCSV(string path) {         string pattern = @"\d+"; List<List<string>> data = new List<Lis