C++中,getline函数的详解

C++中,getline函数的详解,第1张

C++中本质上有两种getline函数,一种在头文件<istream>中,是istream类的成员函数。一种在头文件<string>中,是普通函数。

一、在<istream>中的getline函数有两种重载形式:

istream&getline (char* s, streamsize n )

istream&getline (char* s, streamsize n, char delim )

作用是从istream中读取至多n个字符保存在s对应的数组中。即使还没读够n个字符,如果遇到换行符'\n'(第一种形式)或delim(第二种形式),则读取终止,'\n'或delim都不会被保存进s对应的数组中。

二、在<string>中的getline函数有四种重载形式:

istream&getline (istream& is, string&str, char delim)istream&getline (istream&&is,

string&str, char delim)istream&getline (istream& is, string&str)

istream&getline (istream&&is, string&str)

用法和上一种类似,不过要读取的istream是作为参数is传进函数的。读取的字符串保存在string类型的str中。

扩展资料:

getline不是C库函数,而是gcc的扩展定义或者C++库函数。它会生成一个包含一串从输入流读入的字符的字符串,直到以下情况发生会导致生成的此字符串结束。

1)到文件结束,

2)遇到函数的定界符,

3)输入达到最大限度。

参考资料:getline函数-百度百科

1、C语言中没有,C++中才有getline()函数。C语言中类似的 有 fgets(), gets() 函数。

用于读取一行字符直到换行符,包括换行符.

char * fgets ( char * str, int num, FILE * stream )

char * gets ( char * str )

2、例程:

/* gets 例子 */

#include <stdio.h>

int main()

{

char string [256]

printf ("Insert your full address: ")

gets (string)

printf ("Your address is: %s\n",string)

return 0

}

/* fgets 例子 */

#include <stdio.h>

int main()

{

FILE * pFile

char mystring [100]

pFile = fopen ("myfile.txt" , "r")

if (pFile == NULL) perror ("Error opening file")

else {

fgets (mystring , 100 , pFile)

puts (mystring)

fclose (pFile)

}

return 0

}

C++有getline()函数.

C 有 fgets(), gets() 函数.

用于读取一行字符直到换行符,包括换行符.

char * fgets ( char * str, int num, FILE * stream )

char * gets ( char * str )

/* gets 例子 */

#include <stdio.h>

int main()

{

char string [256]

printf ("Insert your full address: ")

gets (string)

printf ("Your address is: %s\n",string)

return 0

}

/* fgets 例子 */

#include <stdio.h>

int main()

{

FILE * pFile

char mystring [100]

pFile = fopen ("myfile.txt" , "r")

if (pFile == NULL) perror ("Error opening file")

else {

fgets (mystring , 100 , pFile)

puts (mystring)

fclose (pFile)

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/11860910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存