云南昆明做网站,wordpress备份文件,东仓建设网站,创建学校网站吗fprintf#xff08;指定的格式写到文件里面。适用于所有的输出流#xff0c;可以打印在屏幕上面#xff09;fscanf#xff08;指定的格式读取出来#xff0c;适用于所有的输入流#xff09; fprintf#xff08;指定的格式写到文件里面#xff09; 两个函数是一样的 打开…fprintf指定的格式写到文件里面。适用于所有的输出流可以打印在屏幕上面fscanf指定的格式读取出来适用于所有的输入流 fprintf指定的格式写到文件里面 两个函数是一样的 打开文件
写文件 fprintf以指定的格式写到信息里面
同时这里是文本的形式写进去的 因为我们都读得懂 代码
#define _CRT_SECURE_NO_WARNINGS 1
#includestdio.h
#includestdlib.h
struct MyStruct
{char name[20];int age;
};
int main()
{struct MyStruct s { 张三,23 };FILE* ps fopen(fprintf.txt, w);//这里我们进行写入一个文件没有的话会自动创建一个文件if (ps NULL){perror(fopen:w:);return 1;}fprintf(ps, %s %d, s.name, s.age);//以指定格式写入文件fclose(ps);//关闭文件ps NULL;//指针指向空指针return 0;
} ——————————————————————————————————————————
fscanf指定的格式读取出来适用于所有的输入流
同理这个和scanf是一样的
数组名本身就是地址 fscanf #define _CRT_SECURE_NO_WARNINGS 1
#includestdio.h
#includestdlib.h
struct MyStruct
{char name[20];int age;
};
int main()
{struct MyStruct s { 张三,23 };FILE* ps fopen(fprintf.txt, w);if (ps NULL){perror(fopen:w:);return 1;}//这里是把内容写到文件里面fprintf(ps, %s %d, s.name, s.age);//写入文件fclose(ps);ps NULL;//只读因为你剩下的操作是文件读取所以这里不行w但是可以是只读读取文件FILE* pf fopen(fprintf.txt, r);if (pf NULL){perror(fopen:r:);return 1;}//这里是读取内容不读取是无法直接打印文件内容的fscanf(pf, %s %d, s.name, (s.age));//数组首元素就是地址 不需要取地址 此时也就是读取成功printf(%s %d\n, s.name, s.age);//表纯输出流打印文件fprintf(stdout, %s %d\n, s.name, s.age);//指定输出流打印文件fclose(pf);pf NULL;return 0;
} ———————————————————————————————————————————
fprintf可以打印在屏幕上面
适用于所有的输出流可以打印在屏幕上面
也就是你可以用fprintf写写入里面用fscanf进行读取再用fprintf进行打印
当然这里前面的参数是文件我们指向的是文件然后才能打印出来 stdout补充说明
stdout 是 C 标准库中的一个文件流代表标准输出。标准输出通常指的是计算机屏幕但它也可以被重定向到其他地方比如一个文件。在 C 语言中stdout 用于打印程序的输出信息比如 printf 函数和 fprintf 函数输出的内容。
当你调用 printf 或者 fprintf 函数时如果不指定文件指针参数这些函数会默认使用 stdout 作为输出目标。例如
printf(Hello, World!);
这行代码会将在 stdout 上打印 Hello, World!。默认情况下stdout 指向控制台屏幕所以你会在屏幕上看到输出。
你还可以将 stdout 重定向到文件。例如你可以使用系统命令行将输出重定向到文件
./program output.txt
这会使得 program 程序的标准输出被重定向到 output.txt 文件而不会在屏幕上显示任何内容。
在 C 程序中你也可以显式地将输出写入 stdout
fprintf(stdout, This will go to the screen or a file if redirected.\n);
因为这个不是标准输出流是指定输出流所以我们可以指定格式。
这里我们发现我们可以用fprintf函数打印出来
#define _CRT_SECURE_NO_WARNINGS 1
#includestdio.h
#includestdlib.h
struct MyStruct
{char name[20];int age;
};
int main()
{struct MyStruct s { 张三,23 };FILE* ps fopen(fprintf.txt, w);if (ps NULL){perror(fopen:w:);return 1;}//这里是把内容写到文件里面fprintf(ps, %s %d, s.name, s.age);//写入文件fclose(ps);ps NULL;//只读因为你剩下的操作是文件读取所以这里不行w但是可以是只读读取文件FILE* pf fopen(fprintf.txt, r);if (pf NULL){perror(fopen:r:);return 1;}//这里是读取内容不读取是无法直接打印文件内容的fscanf(pf, %s %d, s.name, (s.age));//数组首元素就是地址 不需要取地址 printf(%s %d\n, s.name, s.age);//表纯输出流打印文件fprintf(stdout, %s %d\n, s.name, s.age);//指定输出流打印文件fclose(pf);pf NULL;return 0;
} ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
sprintf指定格式转化成字符串sscanf字符串转化成指定格式
sprintf指定格式转化成字符串
格式化的数据转化成字符串sprintf sprintf 是一个在 C 语言中定义的函数它的作用是将格式化的字符串和参数转换成字符串并将结果存储在指定的字符数组中。因此sprintf 可以用来将文件中的文档内容转化成字符串也可以用来将刚编写的结构体代码转化为字符串。具体使用方式取决于程序的具体需求。 这里已经转化为字符串 #define _CRT_SECURE_NO_WARNINGS 1
#includestdio.h
#includestdlib.h
struct MyStruct
{char name[20];int age;
};
int main()
{struct MyStruct s { 张三,23 };FILE* ps fopen(fprintf.txt, w);if (ps NULL){perror(fopen:w:);return 1;}//这里是把内容写到文件里面fprintf(ps, %s %d, s.name, s.age);//写入文件fclose(ps);ps NULL;//只读因为你剩下的操作是文件读取所以这里不行w但是可以是只读读取文件FILE* pf fopen(fprintf.txt, r);if (pf NULL){perror(fopen:r:);return 1;}//这里是读取内容不读取是无法直接打印文件内容的fscanf(pf, %s %d, s.name, (s.age));//数组首元素就是地址 不需要取地址 //转化为字符串的形式char buf[100] { 0 };//因为是转化成字符串的形式所以需要用一个数组进行接收sprintf(buf, %s %d, s.name, s.age);printf(字符串打印 %s \n, buf);fclose(pf);pf NULL;return 0;
} ———————————————————————————————————————————
sscanf字符串转化成指定格式
sscanf语法说明 这里是 从结构体读取数据
这里是从buf里面读取
所以sscanf也就是前面加上一个需要读取的名称
两次打印的对比一样的但是此时已经不是字符串的格式已经是指定的格式了 代码总结
#define _CRT_SECURE_NO_WARNINGS 1
#includestdio.h
#includestdlib.h
struct MyStruct
{char name[20];int age;
};
int main()
{struct MyStruct s { 张三,23 };FILE* ps fopen(fprintf.txt, w);if (ps NULL){perror(fopen:w:);return 1;}//这里是把内容写到文件里面fprintf(ps, %s %d, s.name, s.age);//写入文件fclose(ps);ps NULL;//只读因为你剩下的操作是文件读取所以这里不行w但是可以是只读读取文件FILE* pf fopen(fprintf.txt, r);if (pf NULL){perror(fopen:r:);return 1;}//这里是读取内容不读取是无法直接打印文件内容的fscanf(pf, %s %d, s.name, (s.age));//数组首元素就是地址 不需要取地址 //转化为字符串的形式char buf[100] { 0 };//因为是转化成字符串的形式所以需要用一个数组进行接收sprintf(buf, %s %d, s.name, s.age);printf(字符串打印 %s \n, buf);//字符串转化为带有格式的形式sscanf(buf, %s %d, s.name, (s.age));//我们这里还是这个格式 把数组转化成格式给到结构体里面fprintf(stdout, 按照格式打印%s %d\n, s.name, s.age);//指定输出流打印文件fclose(pf);pf NULL;return 0;
} ————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
printf标准输出流scanf标准输入流函数的总结
这里说明一下printf和scanf经常使用就不详细举例直接进行说明。
在C语言中printf、fprintf、sprintf、scanf、sscanf和fscanf是用于输入和输出数据的函数。下面是它们的区别和通常的使用场景
printf printf函数用于将格式化的数据输出到标准输出通常是终端或控制台。它不会在输出字符串的末尾添加换行符所以如果需要换行需要在格式字符串中显式包含\n。示例printf(Hello, World!\n
fprintf fprintf函数用于将格式化的数据输出到任意指定的文件指针FILE *。它可以将数据输出到文件、网络流等。示例FILE *fp fopen(file.txt, w); fprintf(fp, Hello, World!\n); fclose(fp);
sprintf sprintf函数用于将格式化的数据输出到一个字符数组或字符串。简单的说就是转化成字符串格式它不会在输出字符串的末尾添加换行符。示例char buffer[100]; sprintf(buffer, Hello, World!\n); printf(%s, buffer); scanf scanf函数用于从标准输入通常是键盘读取格式化的数据。它等待用户输入并根据指定的格式解析输入的数据。示例int num; scanf(%d, num); printf(You entered: %d\n, num);
sscanf sscanf函数用于从字符串中读取格式化的数据。可以把字符串转化为任何你需要的格式它将字符串中的数据按照指定的格式解析成变量。示例char str[] 1234; int num; sscanf(str, %d, num); printf(You entered: %d\n, num);可以把字符串转化为任何你需要的格式
fscanf fscanf函数用于从任意指定的文件指针读取格式化的数据。它可以从文件、网络流等读取数据。示例FILE *fp fopen(file.txt, r); int num; fscanf(fp, %d, num); fclose(fp); printf(You entered: %d\n, num);
格式化的数据就是带有格式的数据
比如整形 字符 浮点型 看到结构体不方便 需要转化为字符串 那就是 sprintf
需要转化回来 那就用sscanf fscanf
————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————