fputc函数(函数图像生成器)
大家好,如果您还对fputc函数不太了解,没有关系,今天就由本站为大家分享fputc函数的知识,包括函数图像生成器的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
fprintf函数的用法有哪些
1、函数声明
int fprintf(FILE* stream, const char*format, [argument])
2、参数
stream--这是指向 FILE对象的指针,该 FILE对象标识了流。
format--这是 C字符串,包含了要被写入到流 stream中的文本。它可以包含嵌入的 format标签,format标签可被随后的附加参数中指定的值替换,并按需求进行格式化。
format标签属性是%[flags][width][.precision][length]specifier
[argument]:附加参数列表
3、功能
fprintf()函数根据指定的格式(format),向输出流(stream)写入数据(argument)。
4、函数说明
fprintf()会根据参数format字符串来转换并格式化数据,然后将结果输出到参数stream指定的文件中,直到出现字符串结束('\0')为止。
程序示例:
#include<cstdio>
int main(void)
{
FILE*in,*out;
in= fopen("\\AUTOEXEC.BAT","rt");
if(in== NULL)
{
fprintf(in,"Can not open inputfile.
");
return 1;
}
out= fopen("\\AUTOEXEC.BAT","wt");
if(out== NULL)
{
fprintf(out,"Can not open outputfile.
");
return 1;
}
while(!feof(in))
fputc(fgetc(in), out);
fclose(in);
fclose(out);
return 0;
}
stm32编程怎么使用printf函数
有两种配置方法:
一、对工程属性进行配置,详细步骤如下
1、首先要在你的main文件中包含“stdio.h”(标准输入输出头文件)。
2、在main文件中重定义函数如下:
//发送数据
int fputc(int ch, FILE*f)
{
USART_SendData(USART1,(unsigned char) ch);// USART1可以换成 USART2等
while(!(USART1->SR& USART_FLAG_TXE));
return(ch);
}
//接收数据
int GetKey(void){
while(!(USART1->SR& USART_FLAG_RXNE));
return((int)(USART1->DR& 0x1FF));
}
这样在使用printf时就会调用自定义的fputc函数,来发送字符。
3、在工程属性的“Target"->"Code Generation"选项中勾选"Use MicroLIB"”
MicroLIB是缺省C的备份库,关于它可以到网上查找详细资料。
至此完成配置,在工程中可以随意使用printf向串口发送数据了。
二、第二种方法是在工程中添加“Regtarge.c”文件
1、在main文件中包含“stdio.h”文件
2、在工程中创建一个文件保存为 Regtarge.c,然后将其添加工程中
在文件中输入如下内容(直接复制即可)
#include
#include
#pragma import(__use_no_semihosting_swi)
extern int SendChar(int ch);//声明外部函数,在main文件中定义
extern int GetKey(void);
struct __FILE{
int handle;// Add whatever you need here
};
FILE __stdout;
FILE __stdin;
int fputc(int ch, FILE*f){
return(SendChar(ch));
}
int fgetc(FILE*f){
return(SendChar(GetKey()));
}
void _ttywrch(int ch){
SendChar(ch);
}
int ferror(FILE*f){// Your implementation of ferror
return EOF;
}
void _sys_exit(int return_code){
label: goto label;// endless loop
}
3、在main文件中添加定义以下两个函数
int SendChar(int ch){
while(!(USART1->SR& USART_FLAG_TXE));// USART1可换成你程序中通信的串口
USART1->DR=(ch& 0x1FF);
return(ch);
}
int GetKey(void){
while(!(USART1->SR& USART_FLAG_RXNE));
return((int)(USART1->DR& 0x1FF));
}
至此完成配置,可以在main文件中随意使用 printf。
feof是什么函数
feof是C语言标准库函数,其原型在stdio.h中,其功能是检测流上的文件结束符,如果文件结束,则返回非0值,否则返回0(即,文件结束:返回非0值,文件未结束,返回0值),文件结束符只能被clearerr()清除。(这里的检测流上的文件结束符就相当于声卡检测电流信号的一个过程)
int feof(FILE*stream);
参数
流:FILE结构的指针
注意:feof判断文件结束是通过读取函数fread/fscanf等返回错误来识别的,故而判断文件是否结束应该是在读取函数之后进行判断。比如,在while循环读取一个文件时,如果是在读取函数之前进行判断,则如果文件最后一行是空白行,可能会造成内存错误。
扩展资料
相关函数
getc()
功能:函数从流中返回一个字符值。
语法:int getc(FILE* stream)
返回值:整数值。
函数种类:“stdio.h”
内容说明:此函数和fgetc函数相似,但它是以一个宏来实现的。另外它将不止一次地计算流参数咖,这对通常的宏的规则来说是一个例外。getc是一个已经高度优化的函数,所以该函数是进行单个字符读操作的最好的函数。
参考:如fputc();fgetc();putc();fopen()。
fputs()
功能:将字符串中的内容写到指定的流中。
语法: int fputs(const char*s,FILE* stream)
返回值:整数值。
函数种类:“stdio.h”
内容说明:函数将字符串指针s所指向的字符串中的内容写到流stream中。标志结束的空字符(NULL)不写。函数也不另外增加一个换行符。只是输出字符串中的所有字符。函数操作成功时返回值为0,否则返回非0值。
如果流是以文本形式打开的,就会对有些字符进行翻译操作。这意味着字符串可能会与文件内容之间没有一一对应的映射关系。然而,当文件以二进制打开时,不发生字符翻译,在字符串与文件内容之间存在一一对应的映射关系。
参考资料来源:百度百科-fgetc
参考资料来源:百度百科-feof
关于fputc函数,函数图像生成器的介绍到此结束,希望对大家有所帮助。