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);

 

posted @ 2020-10-24 14:11  Monday1024  阅读(420)  评论(0)    收藏  举报