C++中getline函数用法

本文介绍了C++标准库中的getline()函数的使用方法。该函数用于从输入流中读取一行文本到字符数组中,并允许指定终止符,默认为换行符。通过示例代码展示了如何使用getline()来处理文件。

getline()    语法:        

 istream &getline( char *buffer, streamsize num );   

 istream &getline( char *buffer, streamsize num, char delim );   

    用getline()读取字符到buffer中,buffer在代码中通常体现为一个字符数组,streamsize num是一次读入多少个字符,   num - 1个字符已经读入,       当碰到一个换行标志,  碰到一个EOF,  或者任意地读入,直到读到字符delim。delim字符不会被放入buffer中。delim字符可以自已设定,默认为回车符'/n' 

 #include <iostream.h>
#include<stdlib.h>
#include <iomanip.h>
#include <fstream.h>

const int N=10;
int main()
{
 char str[N];
  ifstream fin;
    fin.open("data.txt");
 if (!fin)
 {
  cout<<"error "<<endl;
  exit(1);
 }
 while(fin.getline(str,sizeof(str)))
 {
  cout<<str;
  cout<<endl;
 }
 cout<<endl;

fin.clear();
cin.get();
 return 0;
}

 

C语言中的getline()函数可以用于从标准输入流(stdin)中读取一行数据。该函数的原型如下: ```c ssize_t getline(char **lineptr, size_t *n, FILE *stream); ``` 其中,lineptr是一个指向字符指针的指针,用于存储读取到的数据;n是一个指向size_t类型的指针,用于存储lineptr指向的缓冲区的大小;stream是一个指向输入流的指针,通常为stdin。 该函数的返回值为ssize_t类型,表示读取到的字符数(包括结尾的换行符),如果读取失败则返回-1。 使用getline()函数的步骤如下: 1. 申请一个指向字符指针的指针和一个指向size_t类型的指针,用于存储读取到的数据和缓冲区的大小。 2. 调用getline()函数读取数据,传入上述两个指针和输入流。 3. 处理读取到的数据,例如去掉结尾的换行符。 4. 释放申请的内存空间。 下面是一个示例: ```c #include <stdio.h> #include <stdlib.h> int main() { char *line = NULL; size_t len = 0; ssize_t read; printf("Please input a line of text:\n"); read = getline(&line, &len, stdin); if (read == -1) { printf("Failed to read input.\n"); } else { printf("Read %zd characters:\n", read); printf("%s", line); } free(line); line = NULL; return 0; } ``` 在上述示例中,我们首先定义了一个指向字符指针的指针line和一个指向size_t类型的指针len。然后调用getline()函数读取输入数据,传入line、len和stdin作为参数。在输出读取到的数据之前,我们判断了getline()函数是否读取成功。最后释放了申请的内存空间。 注意,在处理读取到的数据时,需要注意结尾的换行符,可以使用strtok()函数去掉。同时也需要注意,getline()函数只能在Linux和MacOS系统中使用,在Windows系统中并不支持。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值