c 文件的读取与写入
1:getchar()与putchar(),宽字符getwchar()与putwchar()
int getchar(void) 从标准输入stdin获取一个字符,宽字符操作getwchar(),
int putchar(int char)把参数char写入到标准输出stdout中,宽字符操作putwchar()。
char res; res = getchar(); //可以读取一行直到文件结尾或者遇到换行符 while (1) { res = getchar(); if (feof(stdin)) { break; } printf("%c \n", res); }
2,; gets()与puts()
char *gets(char *str) 从标准输入stdin读取一行,直到读取到换行符时,或者到达文件末尾时
int puts(const char *str)把一个字符串写入到标准输出 stdout,直到空字符,但不包括空字符.换行符会被追加到输出中。
char str[50]; gets(str); printf("您输入的字符串是:%s", str);
puts("dart n \n tttt"); //显示为 //dart n // tttt
3:fgets()与fputs(),fgetws()与fputws()
char *fgets(char *str, int n, FILE *stream)从指定的流 stream 读取,读取 (n-1) 个字符时(会读取换行符),或者读取到换行符时,或者到达文件末尾时结束
wchar_t * fgetws(wchar_t * str,int count,FILE * stream);对应宽字符操作
int fputs(const char *str, FILE *stream)把字符串写入到指定的流stream中,不包括空字符,
宽字符fputwsconst (char *str, FILE *stream)
FILE* f = NULL; char str[256] = { 0 }; f = fopen("test.txt", "r"); //aab bccddeeff if (f) { fgets(str,6,f); //aab b(n-1停止) } fclose(f); printf("%s", str);
FILE* f = NULL; const char str[] = { "aa bb cc dd" }; f = fopen("test.txt", "w"); if (f) { fputs(str, f); } fclose(f);
4:getc()与putc(),fgetc()与fputc(),getwc()与putwc(),fgetwc()与fputwc()
int getc(FILE *stream)从指定的流 stream 获取下一个字符,并把位置标识符往前移动。也可以是标准流stdin
getwc(),宽字符
int fgetc(FILE *stream) 作用同与getc(),区别fgetc是函数
fgetwc(FILE * stream) 从给定的输入流中读取下一个宽字符
int putc(int char, FILE *stream) 把参数char写入到指定的流 stream中,并把位置标识符往前移动,也可以是标准流stdout
putwc(),宽字符
int fputc(int char, FILE *stream)作用同与putc(),区别fputc是函数
wint_t fputwc(wchar_t ch,FILE * stream);宽字符
//标准流 printf("请输入 -------"); while (1) { char res = getc(stdin); if (feof(stdin)) { break; } printf("%c \n", res); } //指定流 FILE* f = NULL; f = fopen("test.txt", "r"); if (f) { while (1) { char res = getc(f); if (feof(f)) { break; } printf("文本内容为 : %c \n", res); } } fclose(f);
FILE* f = NULL; f = fopen("test.txt", "w"); if (f) { putc('a',f); putc('v', f); putc('c', f); //putc('\n', f); putc('s', f); } //test.txt内容为avcs fclose(f);
5:scanf与printf
int scanf(const char *format, ...)从标准输入 stdin 读取格式化输入
int printf(const char *format, ...)格式化输出到标准输出 stdout
int a, b, c; printf("输入三个数字:"); scanf("%d%d%d", &a, &b, &c); printf("a = %d,b = %d, c= %d\n", a, b, c);
6:fprintf()与fscanf()
int fprintf(FILE *stream, const char *format, ...) 格式化输出到流 stream 中
int fscanf(FILE *stream, const char *format, ...) 从流 stream 格式化读取
FILE * fp= NULL; fp = fopen("test.txt", "w+"); if (fp) { fprintf(fp, "%s %s %s %d", "new", "year", "is", 2020); } fclose(fp);
7:fwrite与fread
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) 把ptr所指向的数组中的数据写入到流stream
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) 从流stream读取数据到 ptr 所指向的数组中
FILE * fp = NULL; fp = fopen("test.txt", "w+"); char buffer[] = { "helloworld 123" }; size_t len = sizeof(buffer); int strszie = strlen(buffer); size_t ret; if (fp) { ret= fwrite(buffer, len, 1, fp); } fseek(fp, 0, SEEK_SET); fread(buffer, strlen(buffer) + 1, 1, fp); printf("%s\n", buffer); fclose(fp);

浙公网安备 33010602011771号