嵌入式软件--C语言高级 DAY 11

文件对于嵌入式来说不是必要的,我们的要求只有“了解”即可。

1.文件操作

文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,比如大家经常使用的word文档,txt文件,excel文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音...

C程序中,文件中数据的输入/输出操作以“流”的方式进行,可以看做是一种数据的流动。

2.scanf和printf函数

C语言中的I/O (输入/输出)通常使用printf()和scanf()两个函数,scanf()函数从标准输入流stdin读取输入,printf()函数把输出写入到标准输出流stdout。这两个函数我们在前面的案例中已经大量使用。

案例演示从键盘获取输入并将内容再输出

#include <stdio.h>

int main()
{
    // 定义变量
    char str[100];
    int i;

    // 获取输入
    printf("Please Input A String And A Number :");
    scanf("%s %d", str, &i);

    // 输出到屏幕终端
    printf("You entered: %s %d ", str, i);
    printf("\n");

    return 0;
}

3.getchar() & putchar() 函数

  1. getchar 函数

getchar() 函数用于从标准输入流(通常是键盘输入)读取一个字符。这个函数在同一个时间内只会读取一个单一的字符。

函数原型:

int getchar(void);

返回值说明:

返回一个整数值,表示读取的字符。

  1. putchar 函数

putchar()函数用于将一个字符写入到标准输出流(通常是屏幕)。这个函数在同一个时间内只会输出一个单一的字符。

函数原型:

int putchar(int character);

返回值说明:

返回一个整数值,是写入的字符的ASCII码值。

参数说明:

character是要写入的字符的ASCII码值。

#include <stdio.h> 

int main( )
{
    int c;
    printf( "Enter a value :"); 
    c = getchar();
    
    printf( "\nYou entered: ");
    putchar(c);
    printf("\n");

    return 0;
}

4.gets()和puts()函数

(1)gets()

gets() 函数用于从标准输入流(通常是键盘)读取一行文本,并将其存储在一个字符数组中(gets() 的参数),直到遇到换行符为止。

函数原型:

char *gets(char *str);

返回值说明:

返回一个指向存储在 str 中的字符串的指针

参数说明:

字符数组(字符串)的指针,用于存储读取的输入数据。

(2)puts()

puts() 函数用于将字符串输出到标准输出流(通常是屏幕),并自动添加换行符。它接受一个字符串作为参数,然后将其显示在屏幕上。

函数原型:

int puts(const char *str);

返回值说明:

返回成功写入的字符数,如果写入失败或出现错误,它会返回 特殊值EOF((EOF 是一个定义在 stdio.h 头文件中的常量,值通常为 -1))。

参数说明:

str 是要输出的字符串。

#include <stdio.h>

int main()
{
    char str[20];

    printf("Enter a line of text :");
    gets(str);

    printf("You entered: ");
    // printf("%s", str);
    puts(str);

    return 0;
}

5.C文件读写

文件,无论是文本文件还是二进制文件,都以一系列字节的形式存在,C语言提供了一系列函数处理存储设备上的文件。

(1)打开文件

使用fopen( ) 函数来创建一个新的文件或者打开一个已有的文件。该函数位于标准库的 stdio.h 头文件中。

函数原型:

FILE *fopen( const char *filename, const char *mode );

返回值说明:

返回一个指向 FILE 结构的指针,该结构表示文件流,可以使用这个指针来进行文件的读取和写入操作。如果打开文件失败,返回一个空指针(NULL)。

  1. filename是一个以字符串形式指定的文件名,表示要打开的文件的名称,可以包括文件路径和文件名。
  2. mode 是一个以字符串形式指定的打开模式,表示打开文件的方式,可以是以下值之一:

模式

描述

r

只读模式

打开一个已有的文本文件,只允许读取文件。

w

只写模式

打开一个文本文件,从头写入文件。如果文件不存在,则会创建一个新文件并写入;如果文件存在,则清空文件并从头写入。

a

追加模式

打开一个文本文件,追加写入文件。如果文件不存在,则会创建一个新文件并写入;如果文件存在,在已有内容后面追加写入。

rb

只读二进制模式

打开一个已有的二进制文件,只允许读取文件。

wb

只写二进制模式

打开一个二进制文件,从头写入文件。如果文件不存在,则会创建一个新文件并写入;如果文件存在,则清空文件并从头写入。

ab

追加二进制模式

打开一个二进制文件,追加写入文件。如果文件不存在,则会创建一个新文件并写入;如果文件存在,在已有内容后面追加写入。

r+

读写模式

打开一个文本文件,允许读写文件。

w+

读写模式

打开一个文本文件,从头读写文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,则清空文件并从头读写。

a+

读写模式

打开一个文本文件,读取或追加写入文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,读取或在已有内容后面追加写入。

rb+

读写二进制模式

打开一个二进制文件,允许读写文件。

r+b

wb+

读写二进制模式

打开一个二进制文件,从头读写文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,则清空文件并从头读写。

w+b

ab+

读写二进制模式

打开一个二进制文件,读取或追加写入文件。如果文件不存在,则会创建一个新文件并读写;如果文件存在,读取或在已有内容后面追加写入。

r是只读,a是追加,记住这两个常用的即可。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值