大家好,欢迎来到IT知识分享网。
前言
本篇文章我们来讲解一下fgets和fputs函数,这两个函数通常用来作为输入和输出功能使用。
一、fputs函数
fputs函数是C语言标准库中的一个输出函数,用于将字符串写入到指定的文件中。它的原型如下:
int fputs(const char* str, FILE* stream);
fputs函数将字符串 str 写入到指定的文件流 stream 中。
参数说明:
#include <stdio.h> int main(void) {
FILE* file; errno_t err; char line[50]; // 打开文件进行写操作 err = fopen_s(&file, "example.txt", "w"); if (err != 0) {
printf("无法打开文件进行写操作。\n"); return 1; } // 向文件中写入数据 fputs("Hello, World!\n", file); fputs("This is an example.\n", file); fclose(file); return 0; }
将字符串写入stdout输出流中:
// 向文件中写入数据 fputs("Hello, World!\n", stdout); fputs("This is an example.\n", stdout);
二、fgets函数
fgets 函数是C语言标准库中的一个输入函数,用于从文件中按行读取数据或从标准输入(键盘)读取数据。它的原型如下:
char* fgets(char* str, int num, FILE* stream);
fgets 函数从指定的文件流(或标准输入流)中读取一行数据,并将其存储到指定的字符数组 str 中。它最多读取 num-1 个字符(包括换行符 \n),并在字符串末尾添加一个空字符 \0。
参数说明:
#include <stdio.h> int main(void) {
FILE* file; errno_t err; char line[50]; // 打开文件进行写操作 err = fopen_s(&file, "example.txt", "w"); if (err != 0) {
printf("无法打开文件进行写操作。\n"); return 1; } // 向文件中写入数据 fputs("Hello, World!\n", file); fputs("This is an example.\n", file); fclose(file); // 打开文件进行写操作 err = fopen_s(&file, "example.txt", "r"); if (err != 0) {
printf("无法打开文件进行写操作。\n"); return 1; } while ((NULL != fgets(line, 50, file))) {
printf("buf : %s", line); } return 0; }
运行结果:
注意:fgets函数读取完一行后将会覆盖之前读取到的数据,如果需要对读取到的数据进行处理的话,那么需要先把数据保存到其他数组当中。
使用fgets循环读取输入数据:
while ((NULL != fgets(line, 50, stdin))) {
printf("length : %d\n", strlen(line)); printf("buf : %s", line); }
三、fputc和fgetc函数
当涉及读取和写入单个字符时,使用 fputc 和 fgetc 是常见的方法。这两个函数用于从文件中读取或写入单个字符。
fputc 函数:
fgetc 函数:
#include <stdio.h> int main() {
FILE *file; int ch; // 打开文件 file = fopen("example.txt", "r"); if (file == NULL) {
printf("无法打开文件。\n"); return 1; } // 使用 fgetc 逐字符读取文件内容并打印 while ((ch = fgetc(file)) != EOF) {
printf("%c", ch); } // 关闭文件 fclose(file); return 0; }
上述示例打开名为 example.txt 的文件,并使用 fgetc 函数逐字符读取文件内容,并通过 printf 函数打印到控制台。当到达文件结尾时,fgetc 函数将返回 EOF(-1),循环终止,文件关闭。
总结
本篇文章主要讲解了fgets和fputs的使用,这两个函数主要用于输入和输出使用,以及讲解了fputc和fgetc的使用。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/111066.html

