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
}
getline是都一行,并把内容填入str,它不会因为你只留5个字节就不读完整一行了.如果你在一行内输入"两行"内容,本身就是输入不合规,对标准输出流的处理的期望值也是错误的.你就不应该用getline读getline一定会读到\n,然后舍弃buffer放不下的内容