亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

關于getline函數?

關于getline函數?

九州編程 2019-03-06 10:06:23
void read(int flag) { ifstream infile("E:\\phone.txt",ios::in); if(!infile) { cout<<"phone.dat can not open.\n"; abort(); }i=0;char temp1[max],temp2[max],temp3[max],temp4[max]; do{s[i]=new per;infile.getline(temp1,20); infile.getline(temp2,20); infile.getline(temp3,2); infile.getline(temp4,2); strcpy((*s[i]).name,temp1); strcpy((*s[i]).phone,temp2); (*s[i]).sex=temp3[0]; (*s[i]).cata=temp4[0]; i++;}while(!infile.eof()); j=i-1; break;}}誰能告訴我,代碼里的getline函數的含義,以及其用法??謝謝!
查看完整描述

3 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

 getline函數
  getline不是C庫函數,而是C++庫函數。它會生成一個包含一串從輸入流讀入的字符的字符串,直到以下情況發生會導致生成的此字符串結束。1)到文件結束,2)遇到函數的定界符,3)輸入達到最大限度。
  使用條件
  linux標準C中使用條件:
  #define _GNU_SOURCE
  #include <stdio.h>
  函數聲明:
  ssize_t getline(char **lineptr, size_t *n, FILE *stream);
  返回值
  成功:返回讀取的字節數。
  失敗:返回-1。
  lineptr:指向存放該行字符的指針,如果是NULL,則有系統幫助malloc,請在使用完成后free釋放。
  n:如果是由系統malloc的指針,請填0
  stream:文件描述符

  應用舉例:

  #define _GNU_SOURCE
  #include <stdio.h>
  #include <stdlib.h>
  int main(void)
  {
  FILE * fp;
  char * line = NULL;
  size_t len = 0;
  ssize_t read;
  fp = fopen("/etc/motd", "r");
  if (fp == NULL)
  exit(EXIT_FAILURE);
  while ((read = getline(&line, &len, fp)) != -1)
  {
  printf("Retrieved line of length %zu :\n", read);
  printf("%s", line);
  }
  if (line)
  free(line);
  exit(EXIT_SUCCESS);
  }



查看完整回答
反對 回復 2019-03-26
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

讀取一行
可以看你上述代碼
infile.getline(buff, len);
一個參數是buffer, 后面一個是長度

查看完整回答
反對 回復 2019-03-26
  • 3 回答
  • 0 關注
  • 961 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號