C库函数标准编程之fscanf()函数解读及其实验
函数功能
fscanf()函数用于从参数stream的文件流中读取format格式的内容,然后存放到...所指定的变量中去。字符串以空格或换行符结束(实验1中会对它进一步说明)
函数格式
字符格式说明
关于输入输出
(stdin、stdout、stderr)启动一个C语言程序时,操作系统环境负责打开三个文件,并将这3个文件的指针提供给该程序。这3个文件分别为标准输入(stdin)、标准输出(stdout)、标准错误(stderr)。它们在<stdio.h>中声明,大多数环境中,stdin指向键盘,stdout、stderr指向显示器。之所以使用stderr,若因某种原因造成其中一个文件无法访问,相应的诊断信息要在该链接的输出的末尾才能打印出来。当输出到屏幕时,这种处理方法尚可接受,但如果输出到一个文件或通过管道输出到另一个程序时,就无法接受了。若有stderr存在,即使对标准输出进行了重定向,写到stderr中的输出通常也会显示在屏幕上。exit():在主程序main中,语句return expr等价于exit(expr)。但是,函数exit有一个优点,它可以从其他函数中调用,并且可以用查找程序查找这些调用。exit(0)为正常退出,exit(1)只要里面的参数不为零,为非正常退出。
fscanf()与scanf()的区别
fsanf()函数用于从文件流中读取数据,scanf()函数用于从标准输入(键盘)中读取数据。如果将fscanf()函数内文件流指针设为stdin,这时候可以替代scanf()函数。
实验1
功能:读取键盘输入的内容并输出到屏幕上
源程序:
#include<stdio.h>
main()
{
char str[20]; //存放输入的字符串
printf("Please Input string: ");
//将键盘输入的内容,以字符串%s的格式存放到str中去
fscanf(stdin,"%s",str);
printf("You have input:%s\n",str);
}
执行结果:
分析:由执行结果可以看出,第一次输入“Hello World”时,输出为“Hello”,这是因为fscanf()函数遇到空格或者换行时结束。为了排除存放字符数组的内存长度不够的原因,第二次输入“HelloWorld”时,输出结果为“HelloWorld”。可以看出fscanf()函数确实是遇到空格或者换行时结束。
实验2
功能:读取字符串和数字,再输出到屏幕。
源程序:
#include<stdio.h>
main()
{
char str[20]; //存放输入的字符串
int a;//存放输入的整形数据
printf("Please Input : ");
//将键盘输入的内容,以字符串%s的格式存放到str中去
fscanf(stdin,"%s%d",str,&a);
printf("字符串内容为:%s\n",str);
printf("整形数据为:%d\n",a);
}
执行结果:
C库函数标准编程之fscanf()函数解读及其实验的更多相关文章
- Windows编程之connect函数研究
写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...
- Linux下多进程编程之exec函数语法及使用实例
exec函数族 1)exec函数族说明 fork()函数用于创建一个子进程,该子进程几乎复制了父进程的全部内容,但是,这个新创建的进程如何执行呢?exec函数族就提供了一个在进程中启动另一个程序执行的 ...
- 深入浅出--UNIX多进程编程之fork()函数
0前言 上周都在看都在学习unix环境高级编程的第八章--进程控制.也就是这一章中.让我理解了unix中一些进程的原理.以下我就主要依照进程中最重要的三个函数来进行解说.让大家通过阅读这一篇文章彻底明 ...
- linux编程之pipe()函数
管道是一种把两个进程之间的标准输入和标准输出连接起来的机制,从而提供一种让多个进程间通信的方法,当进程创建管道时,每次 都需要提供两个文件描述符来操作管道.其中一个对管道进行写操作,另一个对管道进行读 ...
- linux编程之main()函数启动过程【转】
转自:http://blog.csdn.net/gary_ygl/article/details/8506007 1 最简单的程序 1)编辑helloworld程序,$vim helloworld. ...
- (十)Linux 网络编程之ioctl函数
1.介绍 Linux网络程序与内核交互的方法是通过ioctl来实现的,ioctl与网络协议栈进行交互,可得到网络接口的信息,网卡设备的映射属性和配置网络接口.并且还能够查看,修改,删除ARP高速缓存的 ...
- python3 第二十一章 - 函数式编程之return函数和闭包
我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但 ...
- 函数式编程之-bind函数
Bind函数 Bind函数在函数式编程中是如此重要,以至于函数式编程语言会为bind函数设计语法糖.另一个角度Bind函数非常难以理解,几乎很少有人能通过简单的描述说明白bind函数的由来及原理. 这 ...
- Linux编程之fork函数
在Linux中,fork函数的功能就是在一个进程中创建一个新的进程,当前调用fork函数的进程就是产生的新进程的父进程,新进程在以下也称为子进程.在新进程生成之后就会在系统中开始执行. 函数原型:pi ...
随机推荐
- html,JavaScript调用winfrom方法
---恢复内容开始--- 目的: 在动画上面添加点击事件,通过JavaScript调用winfrom方法 1.创建一个页面 using System; using System.Collections ...
- perl lwp编码
$var= $response->content; $var= $response->decoded_content;
- 基本HTML5文件结构
作者 : Dolphin 原文地址:http://blog.csdn.net/qingdujun/article/details/28129039 基本HTML5文件结构: <!--<!D ...
- CloudStack搭建KVM环境
软件环境:agent:CentOS 6.3,minimal安装,CPU启用VT management server:CentOS 6.3,minimal安装 存储:CentOS 6.3 搭建在mana ...
- c 有意思的数组初始化
c 有意思的数组初始化 #include <stdio.h> int main() { int i = 0; char a[1024]; char a0[10] = {}; char a1 ...
- C++中的对象指针
指向对象的指针 在建立对象的时候,变异系统会给每一个对象分配一定的存储空间,以存放其成员. 对象空间的起始地址就是对象的指针.可以定义一个指针变量,用来存放对象的指针. 一个简单的示例1.1: #in ...
- hadoop(六) - ZooKeeper安装与配置
一. ZooKeeper配置 1.使用winscp上传zk安装包 zookeeper-3.4.5.tar.gz 2.解压安装包tar -zxvf zookeeper-3.4.5.tar.gz -C / ...
- HOJ 2245 浮游三角胞(数学啊 )
题目链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2245 Time Limi ...
- Photoshop图象切片保存为网页HTML(DIV+CSS布局)的方法
首先,制作图象切片(以一张图片为例子) 一.选择“切片”工具,在图像上拖动以分割图像(例如:一张图像切割2次就形成3个切片)切片后如下图 二.设置切片选项(如大小.目标链接.图片说明等等):选择“切片 ...
- Windowbuilder之swt designer安装与使用(转)
SWT可视化设计,可以使用Google的WindowBuilder. 在Google Code中,搜索WindowBuilder就可以看到路径. 在Eclipse中 Help--->Inst ...