百度
360搜索
搜狗搜索

fputc函数,fputc函数中的while循环详细介绍

本文目录一览: C语言对文件操作,用fputs函数不能把字符串写入文件?

读写一个字符数据
经过前面的学习,我们学习了fread()、fwrite()函数的操作,这两个函数都是对一段“内存块”进行读写操作。那么,C语言还提供了fgetc()、fputc()函数,对文件中的一个字符进行读写操作。这些函数的定义如下:
int fgetc(FILE *stream);
函数说明:从stream文件指针所指向的文件读取1个字符,通过函数的返回值返回。例如:
char c = fgetc(fp);
就是从fp指向的文件,读取1个字符的数据,通过函数返回值,设置给字符变量c。
int fputc(int c, FILE *stream);
函数说明:把参数c表示的字符,写入stream文件指针所指向的文件。例如:
char c = 'M';
fputc(c, fp);
就是把参数c表示的字符变量,写入文件指针fp指向的文件。如下是一个程序测试例子:
可以看到,新建一个test.txt文件,调用fputc()函数,把一个字符写入到文件中。然后,再重新打开文件,读取文件的数据,调用fgetc()函数读取一个字符,得到的数据是刚刚写入的字符。所以,通过这个例子,我们学习了fgetc()、fputc()函数的操作,对文件进行一个字符的读写操作。
3.5 读写一行字符数据
C语言提供了fgets()、fputs()函数对文件进行读写“一行”的数据,字符串以'\n'字符换行,注意,所谓的“一行”数据,它的最后一个有效字符是’\n’,表示换行符号。字符串的结束符,还是以’\0’为结尾,表示字符串结束符。其中fgets()函数的定义如下:
char *fgets(char *buf, int size, FILE *stream);
函数说明:从stream函数指针所指向的文件中,读取size-1个字节到buf缓存,不是读取size个字节,因为,buf[ ]缓存的第size个字节存放字符串结束符,形成一个有效的字符串。
当读取到换行符时,或者到达文件末尾时,结束文件的读取操作。
返回值:读取数据成功,返回存储数据的缓存地址,就是参数buf的地址。如果读取数据失败,返回NULL。例如,读取文件完,没有数据可以再读取,则返回NULL。
int fputs(const char *buf, FILE *stream);
函数说明:把参数buf指针指向的字符串,写入到stream指向的文件。参数buf是一个字符串指针,必须指向一个合法的字符串。合法的字符串是以字符串结束符'\0'结束,表示一个字符串的结尾。
返回值:写入数据成功,返回成功写入的字符个数。失败返回EOF标记。
如下是一个程序测试例子:
程序运行结果如下:
可以看到,程序调用fputs()函数,往打开的test.txt文件写入数据。直接写入一个字符串。然后,关闭文件,再重新打开文件。调用fgets()函数读取数据,读取数据的时候,遇到回车换行的字符'\n',表示一行数据,那么,就返回读取到的一行数据。
在实际的项目开发过程中,fgets()函数非常有用。例如,我们定义一个config.txt文件,里面存放一些系统的配置信息,文件的格式如下:
cat /etc/config.txt
sys_pwd=123456
ApCliAuthMode=WPA2PSK
ApCliEncrypType=AES
ApCliChannel=1
ApCliDefaultKeyID=1
那么,文件的配置信息是一行一行数据,所以,可以用fgets()函数,快速读取出每一行系统配置信息。

函数fputc()的功能是什么?

函数名: fputc  
功 能: 送一个字符到一个流中
函数头:属于输入输出函数,在C语言中,包含在文件stdio.h中。ANSI标准。
用 法: int fputc(int ch, FILE *stream);
函数fputc()的功能:将字符ch输出到fp所指向的文件中.若成功则返回该字符;否则返回EOF

stm32串口通信中fputc是什么?

stm32串口通信中fputc是函数。串口通讯SerialCommunication是一种设备间非常常用的串行通讯方式,因为它简单便捷大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。
stm32串口通信中fputc的特点
串口通讯的物理层有很多标准及变种,我们主要讲解RS232标准RS232标准主要规定了信号的用途通讯接口以及信号的电平标准,两个通讯设备的DB9接口之间通过串口信号线建立起连接,串口信号线中使用RS232标准传输数据信号。
由于RS232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个电平转换芯片转换成控制器能识别的TTL校准的电平信号才能实现通讯,根据通讯使用的电平标准不同,串口通讯可分为TTL标准及RS232标准。

c++哪两个函数一次写一字符?

在C++中,可以使用 putchar() 和 fputc() 两个函数一次写一字符:
putchar() 函数用于将单个字符写入标准输出流(stdout),其函数原型如下:
int putchar(int c);
其中,c 是要写入的字符,该函数返回写入的字符的 ASCII 码值。
fputc() 函数用于将单个字符写入指定的文件流,其函数原型如下:
int fputc(int c, FILE *stream);
其中,c 是要写入的字符,stream 是指向要写入的文件的指针,该函数返回写入的字符的 ASCII 码值。
需要注意的是,在使用 fputc() 函数时,需要先打开文件流,然后再调用该函数进行写入操作。在写入完成后,还需要关闭文件流,以释放系统资源。例如:
#include

int main() {

FILE *fp = fopen("test.txt", "w");

if (fp != NULL) {

fputc('H', fp);

fputc('e', fp);

fputc('l', fp);

fputc('l', fp);

fputc('o', fp);

fclose(fp);

}

return 0;

}

以上代码会将字符串 "Hello" 写入名为 "test.txt" 的文件中。

不太理解fputc(ch,fp)和putchar(ch)

putchar(ch); 函数原型 是 int putchar ( int character );
向标准输出设备 输出一个字符,也就是 向 屏幕 输出 一个 字符,让你知道已向文件里写了这个字符。
fputc(ch,fp); 是把 ch 输出到磁盘文件里去,磁盘文件就是 fp=fopen()里指明的
D:\cc\filename.dat 这个文件。
ch 的来源是 键盘输入: ch=getchar(); 当 ch=='#'时,循环结束,并关闭文件。

C语言向文件中输入字符,文件里怎么存入失败怎么回事

用freopen吧,而且也不难。
发个图片吧,不然也不知道是怎么回事
用 fputc() 函数只是向该文件的缓冲区写入字符,并不能同步到文件。
要同步到文件,请使用
fflush(fp);程序例:
#include

int main(void){ FILE *fp = fopen("mytext.txt", "wb"); if (NULL == fp) return 1; fputc('h', fp); fputc('e', fp); fputc('l', fp); fputc('l', fp); fputc('o', fp); fputc(',', fp); fputc(' ', fp); fputc('w', fp); fputc('o', fp); fputc('r', fp); fputc('l', fp); fputc('d', fp); fputc('!', fp); fflush(fp); fclose(fp); return 0;}

fputc函数中的while循环

#include

//包含libc库的stdlib.h头文件

getchar();//从stdin读入一个字符

ch=getchar(); //随意输入一个字符,表示正式输入的开始;

ch=getchar(); //这时输入的字符才有可能被写入文件

while(ch!='#') //输入#时退出循环

{

fputc(ch,fp); //ch写入文件fp

putchar(ch); //ch输出到stdout

ch=getchar(); //从stdin读入字符

}

输入30个字符后使用函数fputc将30个字写入D盘根目录下的文件然后使用fgetc从中读出后10?

下面是一个可以从键盘输入 30 个字符,并将它们写入到 D 盘根目录下的 make.txt 文件中,然后再从文件中读取后 10 个字符并输出的 C 语言程序。
```c
#include

int main() {

FILE *fp; // 文件指针

char str[31]; // 存储输入的字符串(包括空字符)

// 提示用户输入字符串

printf("请输入 30 个字符:");

fgets(str, 31, stdin);

// 打开文件并写入数据

fp = fopen("D:\\make.txt", "w+");

if (fp == NULL) {

printf("无法打开文件!\n");

return 1;

}

fputs(str, fp);

fclose(fp);

// 重新打开文件并读取数据

fp = fopen("D:\\make.txt", "r");

if (fp == NULL) {

printf("无法打开文件!\n");

return 1;

}

fseek(fp, -10, SEEK_END); // 移动文件指针到倒数第 10 个字符处

fgets(str, 11, fp); // 读取后 10 个字符

fclose(fp);

// 输出结果

printf("后 10 个字符为:%s\n", str);

return 0;

}

```

在这个程序中,我们首先定义了一个字符数组 `str`,用于存储输入的字符串。然后,我们使用 `fgets` 函数从标准输入中读取用户输入的字符串,并将其保存到 `str` 中。注意,我们要读取 31 个字符,以便包括末尾的空字符。

接下来,我们使用 `fopen` 函数打开 D 盘根目录下的 make.txt 文件,并使用 `fputs` 函数将 `str` 中的内容写入文件中。写入完成后,我们使用 `fclose` 函数关闭文件指针。

然后,我们重新打开文件,并使用 `fseek` 函数将文件指针移动到倒数第 10 个字符处。最后,我们使用 `fgets` 函数读取后 10 个字符,并使用 `printf` 函数将它们输出到屏幕上。

需要注意的是,在使用 `fopen` 函数打开文件时,我们使用了 `"w+"` 和 `"r"` 这两个参数分别表示写入和读取模式。如果打开文件失败,我们会输出一条错误信息并退出程序。

阅读更多 >>>  python lambda表达式,python语句 lambda x: x(i) 中x(i)是什么意思?

C语言中的标准函数有哪些?

C语言编译系统提供了众多的预定义库函数和宏。用户在编写程序时,可以直接调用这些库函数和宏。这里选择了初学者常用的一些库函数,简单介绍了各函数的用法和所在的头文件。
1.测试函数
Isalnum
原型:int isalnum(int c)
功能:测试参数c是否为字母或数字:是则返回非零;否则返回零
头文件:ctype.h
Isapha
原型:int isapha(int c)
功能:测试参数c是否为字母:是则返回非零;否则返回零
头文件:ctype.h
Isascii
原型:int isascii(int c)
功能:测试参数c是否为ASCII码(0x00~0x7F):是则返回非零;否则返回零
头文件:ctype.h
Iscntrl
原型:int iscntrl(int c)
功能:测试参数c是否为控制字符(0x00~0x1F、0x7F):是则返回非零;否则返回零
头文件:ctype.h
Isdigit
原型:int isdigit(int c)
功能:测试参数c是否为数字:是则返回非零;否则返回零。
头文件:ctype.h
Isgraph
原型:int isgraph(int c)
功能:测试参数c是否为可打印字符(0x21~0x7E):是则返回非零;否则返回零
头文件:ctype.h
Islower
原型:int islower(int c)
功能:测试参数c是否为小写字母:是则返回非零;否则返回零
头文件:ctype.h
Isprint
原型:int isprint(int c)
功能:测试参数c是否为可打印字符(含空格符0x20~0x7E):是则返回非零;否则返回零
头文件:ctype.h
Ispunct
原型:int ispunct(int c)
功能:测试参数c是否为标点符号:是则返回非零;否则返回零
头文件:ctype.h
Isupper
原型:int isupper(inr c)
功能:测试参数c是否为大写字母:是则返回非零;否则返回零
Isxdigit
原型:int isxdigit(int c)
功能:测试参数c是否为十六进制数:是则返回非零;否则返回零
2.数学函数
abs
原型:int abs(int i)
功能:返回整数型参数i的绝对值
头文件:stdlib.h,math.h
acos
原型:double acos(double x)
功能:返回双精度参数x的反余弦三角函数值
头文件:math.h
asin
原型:double asin(double x)
功能:返回双精度参数x的反正弦三角函数值
头文件:math.h
atan
原型:double atan(double x)
功能:返回双精度参数的反正切三角函数值
头文件:math.h
atan2
原型:double atan2(double y,double x)
功能:返回双精度参数y和x由式y/x所计算的反正切三角函数值
头文件:math.h
cabs
原型:double cabs(struct complex znum)
功能:返回一个双精度数,为计算出复数znum的绝对值。Complex的结构模式在math.h中给出定义,其定义如下:
struct complex {
double a,y
};
   头文件:stdlib.h,math.h
ceil
原型:double ceil(double x)
功能:返回不小于参数x的最小整数
头文件:math.h
_clear87
原型:unsigned int _clear87(void)
功能:清除浮点运算器状态字
头文件:float.h
_control87
原型:unsigned int _control87(unsigned int newvals,unsigned int mask)
功能:取得或改变浮点运算器控制字
头文件:float.h
cos
原型:double cos(double x)
功能:返回参数x的余弦函数值
头文件:math.h
cosh
原型:double cosh(double x)
功能:返回参数的双曲线余弦函数值
头文件:math.h
ecvt
原型:char*ecvt(double value,int ndigit,int*decpt,int*sign)
功能:把双精度数value转换为ndigit位数字的以空格字符结束的字符串,decpt指向小数点位置,sign为符号标志。函数返回值为指向转换后的字符串的指针
头文件:stdlib.h
exp
原型:double exp(double x)
功能:返回参数x的指数函数值
头文件:math.h
fabs
原型:double fabs(double x)
功能:返回参数x的绝对值
头文件:math.h
floor
原型:double floor(double x)
功能:返回不大于参数x的最大整数
头文件:math.h
fmod
原型:double fmod(double x,double y)
功能:计算x/y的余数。返回值为所求的余数值
头文件:math.h
_fprest
原型:void _fprest(void)
功能:重新初始化浮点型数数学包
头文件:float.h
frexp
原型:double frexp(double value,int*eptr)
功能:把双精度函数value分解成尾数和指数。函数返回尾数值,指数值存放在eptr所指的单元中
头文件:math.h
hypot
原型:double frexp(double x,double y)
功能:返回由参数x和y所计算的直角三角形的斜边长
头文件:math.h
labs
原型:long labs(long n)
功能:返回长整数型参数n的绝对值
头文件:stdlib.h
ldexp
原型:double ldexp(double value,int exp)
功能:返回value*2exp的值
头文件:math.h
log
原型:double log(double x)
功能:返回参数x的自然对数(ln x)的值
头文件:math.h
log10
原型:double log10(double x)
功能:返回参数x以10为底的自然对数(lg x)的值
头文件:math.h
modf
原型:double modf(double value,double*iptr)
功能:把双精度数value分为整数部分和小数部分。整数部分保存在iptr中,小数部分作为函数的返回值
头文件:math.h
poly
原型 :double poly(double x,int n,double c[ ])
功能:根据参数产生x的一个n次多项式,其系数为 c[0],c[1],…c[n]。函数返回值为给定x的多项式的值
头文件:math.h
pow
原型:double pow(double x,double y)
功能:返回计算xy的值
头文件:math.h
pow10
原型:double pow10(int p)
功能:返回计算10p的值
头文件:math.h
rand
原型:int rand(void)
功能:随机函数,返回一个范围在0~215-1的随机整数
头文件:stdlib.h
sin
原型:double sin(double x)
功能:返回参数x的正弦函数值
头文件:math.h
sinh
原型double sinh(double x)
功能:返回参数x的双曲正弦函数值
头文件:math.h
sqrt
原型:double sqrt
功能:返回参数x的平方根值
头文件:math.h
srand
原型:void srand(unsigned seed)
功能:初始化随机函数发生器
头文件:stdlib.h
_status87
原型:unsigned int_status87()
功能:取浮点状态
头文件:float.h
tan
原型:dounle tan(double x)
功能:返回参数x的正切函数值
头文件:math.h
tanh
原型:double tan(double x)
功能:返回参数x的双曲正切函数值
头文件:math.h
书上有的吧..很多的..一般有MAIN.输入输出函数.复合函数.很多的..
C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等.
int
getc(FILE
*fp)
getc主要是从文件中读出一个字符.常用的判断文件是否读取结束的语句为
(ch
=
getc(fp))
!=
EOF.EOF为文件结束标志,定义在stdio.h中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlib.h中一样,文件也可以被理解为一种流,所以当fp为stdin时,getc(stdin)就等同于getchar()了.
int
putc(int
ch,FILE
*fp)
putc主要是把字符ch写到文件fp中去.如果fp为stdout,则putc就等同于putchar()了.
int
getchar(void)
getchar主要是从标准输入流读取一个字符.默认的标准输入流即stdio.h中定义的stdin.但是从输入流中读取字符时又涉及到缓冲的问题,所以并不是在屏幕中敲上一个字符程序就会运行,一般是通过在屏幕上敲上回车键,然后将回车前的字符串放在缓冲区中,getchar就是在缓冲区中一个一个的读字符.当然也可以在while循环中指定终止字符,如下面的语句:while
((c
=
getchar())
!=
'#')这是以#来结束的.
int
putchar(int
ch)
putchar(ch)主要是把字符ch写到标准流stdout中去.
char
*
gets(char
*str)
gets主要是从标准输入流读取字符串并回显,读到换行符时退出,并会将换行符省去.
int
puts(char
*str)
puts主要是把字符串str写到标准流stdout中去,并会在输出到最后时添加一个换行符.
char
*fgets(char
*str,
int
num,
FILE
*fp)
str是存放读入的字符数组指针,num是最大允许的读入字符数,fp是文件指针.fgets的功能是读一行字符,该行的字符数不大于num-1.因为fgets函数会在末尾加上一个空字符以构成一个字符串.另外fgets在读取到换行符后不会将其省略.
int
fputs(char
*str,
file
*fp)
fputs将str写入fp.fputs与puts的不同之处是fputs在打印时并不添加换行符.
int
fgetc(FILE
*fp)
fgetc从fp的当前位置读取一个字符.
int
fputc(int
ch,
file
*fp)
fputc是将ch写入fp当前指定位置.
int
fscanf(FILE
*fp,
char
*format,
输入列表)
fscanf按照指定格式从文件中出读出数据,并赋值到参数列表中.
int
fprintf(FILE
*fp,
char
*format,
输出列表)
fprintf将格式化数据写入流式文件中.
数据块读写函数
fread
(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
参数说明:
buffer:是一个指针。
对fread
来说,它是读入数据的存放地址。
对fwrite来说,是要输出数据的地址(均指起始地址)。
size:
要读写的字节数。
count:
要进行读写多少个size字节的数据项。
fp:
文件型指针。

阅读更多 >>>  linux怎么看一个文件扩展名

网站数据信息

"fputc函数,fputc函数中的while循环"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:fputc函数,fputc函数中的while循环的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!