输入输出函数小结

输入函数

<1>scanf ,sscanf(输入源是字符串),fscanf(输入源是文件)函数

返回值        :返回成功读入的项目的个数。如果没有读取任何项目返回0。当它检测到文件结尾时,它返回EOF。

输入结束标志: 跳过输入队列的换行符,空格开始读入。遇到换行,空格是结束读入,

注意           :输入字符串时逗号并不能作为分隔符;scanf读入多项数据时,若有一项读入出错,其后面的也不会读入

用于           :一次输入一个单词或以某种标准形式输入的混合类型数据的读取和转换

说明           :紧跟while(getchar() != ‘\n‘) continue;用于删除输入队列中多余的字符。

int main (int argc, char **argv)
{
char *name1 = NULL ;
char name2[10] ;
int i=0, j=0, k=0, l=0;

char *name3 = "hello world" ;
char name4[10] ;
char name5[10] ;

char name6[10] ;

i = scanf("%d,%d,%s,%d", &j, &k, name1, &l);            //j=34,k=45,l=0;scanf返回2,成功读入j和k;name1是NULL,读入出错,在这里停止读入
j = scanf("%s,%d", name2,&i);            //输入队列的"zhou,56"被输入到name2,scanf返回1,不要认为56会被赋给i

k = sscanf(name3,"%s%s", name4, name5);    //字符串的name3作输入源,赋值给name4="hello",name5="world",sscanf返回2

l = fscanf(stdin, "%s", name6);         //name6="tian",fscanf返回1

return 0;
} /* ----- End of main() ----- */

运行结果:

34,45,zhou,56[enter]

tian[enter]

<2>gets和fgets(name,MAX,fp)

返回值   :返回一个指向char的指针,如果出错或遇到文件结尾,返回null

输入结束:遇到‘\n‘,文件结尾结束读入,在读入的字符串后添加‘\0‘。gets不读取‘\n‘,fgets读入"\n"

说明      :  gets不检查预留存储区是否能容纳实际输入的数据;fgets从fp文件中读入最多MAX-1个字符

int main (int argc, char **argv)
{
char name[10] ;
char name1[10] ;
char *name2 = NULL ;
char *p1=NULL ;
char *p2=NULL;
char *p3=NULL;

p1=fgets(name, 10, stdin);         //返回的指针指向name
p2=gets(name1);         //返回的指针指向name1
p3=gets(name2);        //name2没有分配内存空间,name2没地方放,出现段错误

return 0;
} /* ----- End of main() ----- */

运行结果<1>:

hello[enter]   //name="hello"

world[enter]  //name1="world"

zhou[enter]

Segmentation fault (core dumped)

运行结果<2>:

hello world[enter]  //name="hello wor"    name1="ld"
zhou[enter]
Segmentation fault (core dumped)

<3>getchar()和getc(fp) 

返回值:返回来自输入设备的下一个字符,范围0-127,检测到文件结尾时返回EOF

用于   :输入单个字符,它们不需要格式说明符,只对字符起作用。

说明 :不跳过输入队列的换行符,会把换行读入;getc从fp指向的文件中获取一个字符

常用:

while((ch=getchar())!=EOF)

{

if(‘\n‘==ch) continue;                     //用于跳过换行符

while(getchar()!=‘\n‘) continue;   //用于跳过输入行多余的字符

/*执行的内容*/
    }

ch=getc(fp)

输出函数

<1>printf, sprintf(输出到数组中)和fprintf(输出到fp指向的文件中)

用于:sprintf可以把几个元素以字符串的形式输出到数组中。

说明:printf() 使用时注意转换说明符的个数,数据类型要相互对应,否则出现段错误;

int main (int argc, char **argv)
{
char *str = "hello world";
char buf[20];
int i = 23;

sprintf(buf, "%s,%d", str, i);
fprintf(stdout, "%s,%d\n", str, i);
printf("%s\n", str,i);
printf("%s,%d\n", str);
printf("%s,%s\n", str,i);   //数据类型不匹配,出现段错误!!!
return 0;
} /* ----- End of main() ----- */

运行结果:

hello world,23
hello world
hello world,4196184
Segmentation fault (core dumped)

<2>puts(name)和fputs(name,fp)

输出停止:遇到空字符‘\0‘时停止输出。

说明     :puts显示字符串时自动添加换行符;fputs不自动添加换行符

注意字符数组没有‘\0‘

<3>

putchar(ch)打印它的参数.

putc(ch, fpout)将将ch写入fpout指向的文件中

时间: 2024-11-06 09:44:54

输入输出函数小结的相关文章

C和指针 (pointers on C)——第十五章:输入输出函数

第十五章 输入输出函数 这一章读完的第一感觉就是"呵呵". 如果说上过C语言课,基本上scanf()/printf()算是用的比较熟练了.尤其是那些抽象的格式说明.还有scanf()为什么要加括号. 读过本书前面的内容的话,getchar(),putchar(),gets(),puts()这些应该也问题不大. 再如果的话,你学过计算机图形学,你玩过OpenGL,听说过双缓存机制,那么fflush()也肯定弄明白了. 再加上FILE的操作,输入输出定位刷新删除改名,流的概念. 这一章就会

C语言基础--常用的数据输入输出函数

常用的数据输入输出函数 以下只是个人学习的笔记,由于我也是刚接触,所以有可能有错误,如有错误,请指出 1.语句 语句:就是完成一定的操作任务,在编写程序时,生命部分不能算作语句,如,int a=10:   程序中包括声明部分和执行部分,其中执行部分即由语句组成 2.字符数据输入输出 (1).字符数据输出 字符数据输出使用的是putchar,其作用是向显示设备输出一个字符,其语法格式是int putchar(int ch);,其中的ch是要进行输出的字符可以是字符型变量或者整型变量,也可以是常量,

C字符串输入输出函数

下面就几个常用的字符串输入输出函数做个小小的总结TAT 使用时添加头文件:#include<stdio.h>. scanf("格式控制字符串",变量地址列表):(printf),每次只能接收一个单词,无法接收整行数据 gets(字符数组名或指针):读取一整行的输入,以回车结束读取,如果用来保存接收到数据的空间不够大就会导致缓冲区溢出,覆盖缓冲区之后的数据,在C11中被废弃.gets()在接收数据时,输入换行符时会丢弃,不会被读取,没有换行的效果,读取的换行符被转换为'\0'

C语言数据流&amp;输入输出函数

数据流有两种通用类型,文本流与二进制流,文本流由分成行的字符序列组成,二进制流是char类型的数据值序列.基于数据流的概念,C语言有丰富而有用途的输入输出函数,这些函数多在stdio.h.wchar.h中定义,数据类型FILE保存数据流的信息. FILE* fopen(const char* restrict filename, const char* restrict mode); fopen带有文件名和存取方式两个参数,文件名按实现指定的方式打开或建立文件,将其和一个数据流相关联,宏FILE

常用输入输出函数

输入输出函数是在stdio.h中进行声明的,所以首先必须引用  #include <stdio.h>. stdio   英 [stdi'???]   美 [stdio]   标准输入输出(standard input/ouput) printf 1.printf(字符串) printf("Hello, World!"); 2.printf(字符串,格式符参数) printf("My age is %d\n", 26);//使用常量作参数 int age

C语言学习笔记(三) 输入输出函数的基本用法以及运算符

printf() ——将内容输出到显示器上 四种用法 1.printf("字符串");   直接输出字符串 2.printf("输出控制符",输出参数); 3.printf("输出控制符1 输出控制符2",输出参数1,输出参数2); 输出控制符和输出参数的个数必须一致: 4.printf("输出控制符 非输出控制符",输出参数); 输出控制符包含如下: 1.%d —— int 2.%ld ——  long int 3.%c —

C语言中输入输出函数

1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.printf()函数用来向标准输出设备(屏幕)写数据; scanf() 函数用来从标准输入设备(键盘)上读数据. 一.printf()函数printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息.在编写程序时经常会用到此函数.printf()函数的调用格式为:printf(“<格式

C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该输入数据按指定的输入格式被赋给相应的输入项.函数一般格式为:scanf("控制字符串",输入项列表):其中控制字符串规定数据的输入格式,必须用双引号括起,其内容是由格式说明和普通字符两部分组成.输入项列表则由一个或多个变量地址组成,当变量地址有多个时,各变量地址之间用逗号“,”分隔.sca

04_python基本的输入输出函数

python的基本输入输出函数 1.输入函数 (1)输入函数简介 在 Python 中可以使用 input 函数从键盘等待用户的输入 用户输入的任何内容Python 都认为是一个字符串 基本语法: 字符串变量 = input("提示信息:") (2)嵌套输入形式 类型转换函数 函数 解释 int(x) 将 x 转换为一个整数 float(x) 将 x 转换到一个浮点数 嵌套输入语法: price = float(input("请输入数据:")) 嵌套编程优点: 节约