其他类型 输入输出函数

***其他输入输出函数***

首先,C语言输入输出的对象,主要就是标准输出流(stdout)与标准输入流(stdin)。所谓标准输出流通俗地说就是屏幕输出,标准输入流就是键盘输入。除了这两种之外,C语言还可以对磁盘文件和外部设备输入输出。

磁盘输入输出函数

类似于标准输入输出函数,文件输入输出函数包括:

a)单个字符输入输出函数:fgetchar与fputchar(或者getc与putc);

b)单行字符串输入输出函数:fgets与fputs;

c)格式化输入输出函数:fscanf与fprintf;

[例3-12]测试文件输出功能

#include <stdio.h>

int main( )

{

char s[80];

FILE* pf = fopen("./1.txt", "w");

puts("请输入一行文字:"); //fputs("请输入一行文字:", stdout);

scanf("%s", s); //fgets(s, sizeof(s), stdin);

fputs(s, pf);

fclose(pf);

return 0;

}

将以上代码输入到C语言编译器中进行编译、运行并查看打印结果:

a)运行之后根据提示输入一行文字后回车,查看执行文件或者工程目录下是否生成了一个“1.txt”文件;

b)用记事本或其他文本工具打“1.txt”文件,观察fputs和fclose哪个函数执行之后文件的内容发生变化;

c)使用注释中的fputs替换puts函数,使用fgets替换scanf函数,思考两种函数的等价关系。

[例3-13]测试文件输入功能

#include <stdio.h>

int main()

{

int c;

FILE* pf = fopen("./1.txt", "r");

if (!pf)

{

puts("打开文件失败!");

return -1;

}

while (1)

{

c = getc(pf);

if (c == -1)

break;

if (c == '\r')

continue;

putchar(c); //putc(c,stdout);

}

fclose(pf);

return 0;

}

//linux文本文件的换行符是:\n

//windows文本文件的换行符是:\r\n

将以上代码输入到C语言编译器中进行编译、运行并查看打印结果:

a)运行之前先要拷贝一个1.txt文件(含有多行文字内容),到执行文件所在目录下或者工程目录下;

b)运行之后观察程序输出内容,与原文本文件中的内容是否完全一致;

c)使用注释中的fputc替换putchar函数,思考两种函数的等价关系。

d)最好能在调试模式下单步执行,在监视器内观察getc函数执行后变量的变化,尤其是含有中文的文件。

...........................................................................................................................................................

总结:本节对磁盘文件的读写只做初步认识,更多磁盘文件操作编程,参见后续章节“C语言文件”。在C语言中,把标准输出流定义为一个文件指针stdout,把标准输入流也定义为一个文件指针stdin。因此,就产生了以下的文件输入输出函数的一些等价关系:

a)单个字符输入输出函数:

getchar()与fgetchar(stdin)以及getc(stdin)三者是等价的;

putchar(c)与fputchar(c, stdout)以及putc(c,stdout)三者是等价的;

b)单行字符串输入

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值