c/c++文件流字符串读取操作
博客专区 > yintao 的博客 > 博客详情
c/c++文件流字符串读取操作
yintao 发表于5年前
c/c++文件流字符串读取操作
  • 发表于 5年前
  • 阅读 308
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

c文件打开与关闭:

打开:  FILE *fp = fopen(path, flag);

 关闭: fclose(fp);

c文件流            
  char c   char s[]   格式化输入输出char s[]  
FILE stdio FILE* fp stdio FILE *fp stdio FILE*fp
read c=getchar(); c=getc(fp); gets(s); fgets(s,fp); scanf("%s",s); fscanf(fp,"%s",s);
write putchar(c); putc(c,fp); puts(s); fputs(s,fp); printf("%s",s); fprintf(fp,"%s",s);

 

c++文件打开与关闭:

打开有两种方式: 1. fstream file(path, flag);2. fstream file; file.open(path, flag);     当文件不存在时,若flag中有ios_base::in,则不创建文件。

关闭: file.close()

c++文件流                  
  char c   char s[]   char s[] 读取整行   string s   string s 读取整行
stream iostream ifstream in;ofstream out iostream ifstream in;ofstream out iostream ifstream in iostream fstream iostream ; fstream
read cin>>c; in>>c; cin>>s; in>>s; cin.getline(s,MAXLEN); in.getline(s,MAXLEN); cin>>s; in>>s; getline(in,s, delim);
write cout<<c; out<<c; cout<<s; out<<s;     cout<<s; out<<s;  

 

注:除标准格式化输入不读入字符串末尾blank外,其余都会读入末尾一个blank(\n,space,\t其中之一),并舍弃掉。也就是说scanf之后blank还留在输入流中。 

getline 有读取一整行的功能,这个函数有两种:

  1. in.getline(s, MAXLEN) 是cin的成员函数,只能读入char[], 所以第一参数必须是char*,如果一行的字符数大于或等于MAXLEN则只读入MAXLEN-1个字符。

  2. getline(in, s, delim) 是string的友元函数,第一个参数是输入流,第二个参数是string, 第三个参数是划分字符

标签: c/c++
共有 人打赏支持
粉丝 5
博文 54
码字总数 45783
×
yintao
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: