c文件打開與關閉:ios
打開: FILE *fp = fopen(path, flag);c++
關閉: 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++文件打開與關閉:spa
打開有兩種方式: 1. fstream file(path, flag);2. fstream file; file.open(path, flag); 當文件不存在時,若flag中有ios_base::in,則不建立文件。ci
關閉: 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還留在輸入流中。 get
getline 有讀取一整行的功能,這個函數有兩種:string
in.getline(s, MAXLEN) 是cin的成員函數,只能讀入char[], 因此第一參數必須是char*,若是一行的字符數大於或等於MAXLEN則只讀入MAXLEN-1個字符。it
getline(in, s, delim) 是string的友元函數,第一個參數是輸入流,第二個參數是string, 第三個參數是劃分字符io