美文网首页
# 嵌入式C语言--文件

# 嵌入式C语言--文件

作者: xqiiitan | 来源:发表于2024-08-02 20:46 被阅读0次

文件

输入流、输出流。

1.读取数据:fgetc读取字节。一次读取一个字符,读不到返回-1

fread:一次读取多个。

int main() {
    // 只读方式打开文件。
    FILE* file = fopen("C:\\Users\\1\\Desktop\\a.txt", "r");
    int c;
    while((c = fgetc(file) != -1){
        int c = fgetc(file);
        printf("%c", c); 
    }
    fclose(file);
    return 0;
}

2.fgets 一次读一行数据,以换行符为准,读不到返回null。

    FILE* file = fopen("C:\\Users\\1\\Desktop\\a.txt", "r");
    char arr[1024];
    char *res;
    while(( res = fgets(arr, 1024, file)) != NULL) {
        printf("%s", res);
    }
    fclose(file); // 关闭文件。

3.fread 一次读取多个。

英文1个字节;win64系统,汉字默认2个字节;无有效数据了,返回0.

    FILE* file = fopen("C:\\Users\\1\\Desktop\\a.txt", "r");
    char arr[1024];
    int n;
    while((n =fread(arr,1,1024, file)) !=0 ) {
        for(int i=0; i<n; i++) {
            printf("%c", arr[i]);
        }
    }
    fclose(file);

4.写出数据。w,wb,ab,a

r+ 允许读和写;w+允许读写;a+允许读写。
fputc: 一次写入一个字符,返回写出的字符
fputs:一次写入一个字符串,写出成功返回非负数,一般忽略返回值。
fwrite:一次写多个,返回写出的个数。

    FILE* file = fopen("C:\\Users\\1\\Desktop\\a.txt", "w");
    int ch = fputc(97, file);
    printf("%c", ch);
    
    int n= fputc("您好嵌入式", file);
    char arr[]={97,98,99,100,101}; //abcde
    int n2 = fwrite(arr, 1, 5, file);
    printf("%d\n", n2);
    fclose(file);

5.拷贝文件。

FILE *file1 = fopen("c:\\Users\\1\\Desktop\\a.txt", "rb");
FILE *file2 = fopen("c:\\Users\\1\\Desktop\\b.txt", "wb");
char arr[1024];
int n ;
while((n= fread(arr, 1, 1024, file1)) != 0) {
    // 读取到的数据,写到目的地。循环读写数据。
    fwrite(arr, 1, n, file2);
}
fclose(file1);
fclose(file2);

相关文章

网友评论

      本文标题:# 嵌入式C语言--文件

      本文链接:https://www.haomeiwen.com/subject/bbpnhjtx.html