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 有读取一整行的功能,这个函数有两种:
-
in.getline(s, MAXLEN) 是cin的成员函数,只能读入char[], 所以第一参数必须是char*,如果一行的字符数大于或等于MAXLEN则只读入MAXLEN-1个字符。
-
getline(in, s, delim) 是string的友元函数,第一个参数是输入流,第二个参数是string, 第三个参数是划分字符
来源:oschina
链接:https://my.oschina.net/u/191887/blog/127993