C语言输入输出函数有很多,标准I/O函数中包含了如下几个常用的函数:
scanf,printf,getc,putc,getchar,putchar,gets,puts,fgets,fputs,fgetc,fputc,fscanf,fprintf等
int
scanf(const
char
format,
arg_list)
scanf主要从标准输入流中获取参数值,format为指定的参数格式及参数类型,如scanf("%s,%d",str,icount);
它要求在标准输入流中输入类似"son
of
bitch,1000"这样的字符串,同时程序会将"son
of
bitch"给str,1000给icount
scanf函数的返回值为int值,即成功赋值的个数,在上例中如果函数调用成功,则会返回2,所以我们在写程序时,可以通过
语句if(scanf("%s,%d",str,icount)
!=
2){}来判断用户输入是否正确
int
printf(const
char
format,
arg_list)
printf主要是将格式化字符串输出到标准输出流中,在stdioh头文件中定义了标准的输入和输出,分别是stdin,stdout
arg_list可以是变量名,也可以是表达式,但最终都会以值的形式填充进format中
int
getc(FILE
fp)
getc主要是从文件中读出一个字符常用的判断文件是否读取结束的语句为:(ch
=
getc(fp))
!=
EOFEOF为文件结束标志,
定义在stdioh中,就像EXIT_SUCCESS,EXIT_FAILURE定义在stdlibh中一样,文件也可以被理解为一种流,所以当fp为stdin
时,getc(stdin)就等同于getchar()了
int
putc(int
ch,FILE
fp)
putc主要是把字符ch写到文件fp中去如果fp为stdout,则putc就等同于putchar()了
int
getchar(void)
getchar主要是从标准输入流读取一个字符默认的标准输入流即stdioh中定义的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写入fpfputs与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将格式化数据写入流式文件中
stm32串口通信中fputc是函数。串口通讯SerialCommunication是一种设备间非常常用的串行通讯方式,因为它简单便捷大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。
stm32串口通信中fputc的特点
串口通讯的物理层有很多标准及变种,我们主要讲解RS232标准RS232标准主要规定了信号的用途通讯接口以及信号的电平标准,两个通讯设备的DB9接口之间通过串口信号线建立起连接,串口信号线中使用RS232标准传输数据信号。
由于RS232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个电平转换芯片转换成控制器能识别的TTL校准的电平信号才能实现通讯,根据通讯使用的电平标准不同,串口通讯可分为TTL标准及RS232标准。
利用VC软件通过代码书写就可以将数据写入文件。
首先打开VC++60。
选择文件,新建。
选择C++ source file 新建一个空白文档。
先声明头文件#include <stdioh>。
写上主函数
void main
主要代码
FILE infile,outfile,otherfile;
char input;
char inputs[10];
int i=0;
infile = fopen("d:\\infiletxt","r+");//用fopen函数打开文件
outfile = fopen("d:\\outfiletxt","a+");//用fopen函数打开文件
if ( !infile )
printf("open infile failed\n");
if ( !outfile)
printf("open outfile failed\n");
printf("\n");
printf(" This program is to show file operation! \n");
printf(" The input file is: \n");
printf(" d:\\infiletxt \n");
printf(" The contents in this file is: \n");
printf("\n");
for(;;)
{
input = fgetc(infile);//死循环读出文件内容
printf("%c",input);
putc(input,outfile);//写入内容
i++;
if(input == '\n' || input == EOF)
break;
}
fclose(infile);
fclose(outfile);
scanf("%d",i)
运行结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)