c/c++文件流字符串读取操作

放肆的年华 提交于 2019-12-07 09:25:34

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, 第三个参数是划分字符

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!