数据的输入输出
2011-01-07 12:02
225 查看
第一部分 数据输入/输出地概念及其在C语言中的实现
C语言中输入输出是以计算机为主体的。输入是指从标准输入设备(键盘)为程序中不同类型的变量赋值,输出是指向标准输出设备(显示器)输出表达式的值。
第二部分 数据的格式化输入
格式输入函数scanf,功能是按用户指定的格式,从键盘上把输入输入到指定的变量中。
2.1 格式化输入的格式
1.格式
scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,他是从键盘上输入的数据按指定的格式赋给相应的输入项。一般格式为:
scanf("格式控制字符串","输入项列表");
其中,格式控制字符串的作用是控制输入项列表中各输入项的输入格式,但不能显示非格式字符串,也就是不能显示提示字符串。提示字符串一般包括普通字符串和格式控制字符串。输入项列表则由一个或多个变量的地址组成,当变量地址有多个时,各变量地址之间必须用逗号“,”分隔。变量地址是由地址运算符“&”后跟变量名组成的。这个地址就是编译系统在内存中分配的地址。
2.地址的概念
变量的地址是C编译系统分配的,用户不必关心具体的地址是什么。
变量的地址和变量值的关系如下:
&a----->a 567
a为变量名,567为变量的值,&a是变量a的地址。在scanf语句的格式中,输入时要用一个以上的空格或<Enter>键作为每两个输入数之间的间隔。
2.2 格式控制字符和普通字符
1.格式控制字符
格式控制字符串规定了输入项中变量以何种类型的数据格式被输入,应包括由“%”引导的修饰符和格式字符。其一般格式如下:
%[<修饰符>]<格式字符>
说明:方括号中的内容为可选项。
1)格式字符及其意义
2)修饰符的可选项,可以有也可以没有,如果有修饰符,则它可以是:
A. 修饰字段宽度的数字
用十进制整数指定输入的宽度(即字符串)。例如,scanf("%3d","&a");指按宽度3输入一个整数赋给变量a.
B. 字符l和h
可以和d、0、x一起使用,加l表示输入长整数类型(如%ld)和双精度浮点数(如%lf)。加h表示输入的数据为短整型数据,例如,scanf("%10ld%hd",&x,&i);表示x按宽度为10的长整数读入,而i按短整型读入。
C. 字符*
“*”表示输入该字符值后,不将该值赋予相应的变量,即跳过该输入值。例如,scanf("%4d%*d%4d"&x,&y,&z,);执行该语句,若输入为:1 2 3,则结果为x=1,z=3,y未赋值,2被跳过。
3)使用scanf函数须注意以下几点:
A. scanf函数中没有精度控制,如scanf("%5.2f",&a);是非法的。不能企图用此语句输入小数位为2位的整数。
B. sacnf中要求给出变量地址,若给出变量名则会出错。如scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。
C. 在输入多个数值数据时,若格式控制串中没有非格式字符作为输入数据之间的间隔,则可用空格,<Tab>键或<Enter>键作为间隔。C编译在碰到空格,<Tab>键或<Enter>键或非法数据(如对"%d"输入"12A"时,A即为非法数据)时即认为该数据输入结束。
D. 在输入字符数据时, 若格式控制串中无格式字符,则认为所有输入的字符均为有效字符。
如:
scanf("%c%c%c",&a,&b,&c);
输入为:d e f 则把'd'赋给a,' '空格赋给b,'e'赋给c.只有输入def时,才会把'd'赋给a,'e'空格赋给b,'f'赋给c。如果在格式控制中加入空格作为间隔,如scanf("%c %c %c",&a,&b,&c);则输入时各数据之间必须加空格。
例1:scanf函数输入字符时的技巧1
#include<stdio.h>
main(){
char a,b;
printf("input character a,b/n");
scanf("%c%c",&a,&b);
printf("%c%c/n",a,b);
}运行结果为:
input character a,b
M N
M
input character a,b
MN
MN
由于scanf函数"%c%c"中没有空格,输入M N时,输出结果只有M,因为N接受的是空格。而当输入MN时,则可输出MN两个字符。
例2:scanf函数输入字符时的技巧2
#include<stdio.h>
main(){
char a,b;
printf("input character a,b/n");
scanf("%c %c",&a,&b);
printf("/n%c%c/n",a,b);
}
运行结果为:
input character a,b
M N
MN
本例表示scanf格式控制串"%c %c"之间有空格,输入的数据之间也必须有空格间隔。
E. 如果格式控制串中有非格式字符,则输入时必须输入该给格式字符。
如:
scanf("%d,%d,%d",&a,&b,&c); 其中用非格式符“,”作为间隔符,故输入时的格式应为:5,6,7
又如:
scanf("a=%d,b=%d,c=%d",&a,&b,&c); 输入时的格式应为:a=5,b=6,c=7
F. 如输入的输入和输出地类型不一致,虽然能够通过编译,但结果却不正确。
例3:输入的数据和输出的类型一致性问题
#include<stdio.h>
main(){
int a;
printf("input a number/n");
scanf("%d",&a);
printf("%ld/n",a);
}
运行结果为:
input a number
12345567678
44332456
由于输入数据的类型为整形,而输出语句的格式串中说明输出结果的类型为长整型,因此输出结果和输入结果不符,需对程序进行改进。
例4:当输入数据的类型改为长整型后,输入输出结果相等。
#include<stdio.h>
main(){
long a;
printf("input a number/n");
scanf("%ld",&a);
printf("%ld/n",a);
}
运行结果为:
input a number
1234567890
1234567890
例5:输入3个小写字母,输出其ASCII码值和对应的大写字母。
#include<stdio.h>
main(){
char a,b,c;
printf("input three character/n");
scanf("%c %c %c",&a,&b,&c);
printf("%d %d %d/n",a,b,c);
printf("%c %c %c/n",a-32,b-32,c-32);
}
运行结果:
input three character
a b c
97 98 99
A B C
2. 普通字符
数据输入格式:在输入时两个数据之间的格式与格式控制字符后的内容有关
1)格式控制字符后不跟任何内容时,数据输入时两个数据之间必须用空格隔开。如果是字符,则不必在其左边留空格。
例8:数据输入格式示例1
#include<stdio.h>
main(){
int a;
float b;
char c;
scanf("%d%f%c",&a,&b,&c);
printf("a=%d,b=%f,c=%c/n",a,b,c);
}
运行结果:
2 3.5f
a=2,b=3.500000f,c=f
2)格式控制字符后跟“,”时,输入数据时两个数据之间必须用“,”隔开。
例9:数据输入格式示例2
#include<stdio.h>
main(){
int a;
float b;
char c;
scanf("%d,%f,%c",&a,&b,&c);
printf("a=%d,b=%f,c=%c",a,b,c);
}
运行结果:
2,3.5,f
a=2,b=3.500000f,c=f
第三部分 数据的格式化输出
1.数据的格式化输出格式
printf函数的功能是按格式控制字符串控制的格式,向默认输出设备(一般为显示器)输出在输出列表中列出的各输出项的值,其基本格式为:
printf("格式控制字符串","输出项列表");
输出项可以为常量、变量或表达式,其类型、顺序与个数必须与格式控制字符串中格式控制字符的类型、顺序与个数一致,当有多个输出项时,各项之间用逗号隔开。格式控制字符必须用双引号括起来,它包括格式控制符、转义字符和普通字符3类字符。
2. 格式控制字符和普通字符
(1)格式控制字符
一般格式为:
%[<修饰符>]<格式字符>
格式字符规定了相应输出项的输出格式,常见格式控制字符如下表:
修饰符是可选的,用于确定数据输出的宽度、精度、小数位数和对齐方式等,用于产生更规范、整齐的输出。当没有修饰符时,以上各项按系统默认设定显示。
1)字符宽度修饰符,如下表:
例如,设i=123,a=12.34567,则printf("%4d+ + +%5.2f",i,a);输出:123+ + 12.35;printf("%2d+ + +%2.1f",i,a);输出123+ + +12.3
可以看出,当指定宽度小于数据的实际宽度时,对整数,按该数的实际宽度输出,对浮点数,相对于小数位上的数四舍五入。例如,12.34567按%5.2f输出,输出12.35。若宽度小于等于浮点数整数部分的宽度,则该浮点数按实际位数输出,但小数位数仍遵守宽度修饰符给出的值。如上面的12.34567按%2.1f输出,结果为12.3.
在实际应用中,还有一种更为灵活的宽度控制方法,用常量或变量的值作为输出宽度,方法是以一个“*”作为修饰,插入到%之后。
例如,设i=123,printf("%*d",5,i);此处宽度为5,输出为:123。程序中可以用一个整型变量k来指示宽度:printf("%*d",k,i);可以根据k的值动态的决定i的显示宽度,这在解决某些问题时是十分有用的。
2)对齐方式修饰符。负数“-”为“左对齐”控制符,一般默认所有输出数据为右对齐格式,加一个“-”号,则变为“左对齐”。
例如,i=123,a=12.34567,printf("%4d/t%10.4f",i,a);输出为:
printf("%-4d/t%10.4f",i,a);
printf("%4d/t%-10.4f",i,a);
3)l和h。可以与输出格式字符d、f、u等连用,以说明使用long型还是short型格式输出输入,如:
%hd表示以短整型输出对应表达式的值。
%lf表示以双精度型输出对应表达式的值。
%ld表示以长整型输出对应表达式的值。
%hu表示以无符号短整型输出对应表达式的值。
(2)普通字符
普通字符包括可打印字符和转义字符,可打印字符主要是一些说明字符,这些字符按原样显示在屏幕上。转义字符是不可打印的字符,他们其实是一些控制字符,控制产生特殊的输出效果。
例如,i=123,n=456,a=12.3457,且i为整形,n为长整型。输出为:
其中“/t”为水平制表符,作用是跳到下一个水平制表位,在不同计算机中,水平制表位的宽度可能是不一样的,这里设为8个字符宽度。那么“/t”跳到下一个8的倍数的列上。“/n”为<Enter>换行符,遇到“/n”,自动换到新的一样显示。
在C语言中,如果要输出“%”,则在控制字符中用两个“%”表示,即“%%”。
例10:分析下列程序的执行结果。
#include<stdio.h>
main(){
int a=16;
char e='A';
unsigned b;
float d;
b=65535;
d=123.45;
printf("a=%d,%4d,%-6d/n",a,a,a);
printf("%o,%x,%u,%d/n",b,b,b,b);
printf("%f,%e,%13.2e,%g/n",d,d,d,d);
printf("%c,%s,%7.3s/n",e,"China","Beijing");
}
运行结果为:
a=16, 16,16
177777,ffff,65535,65535
123.449997,1.234500e+002, 1.23e+002,123.45
A,China, Bei
第四部分 字符数据的输入/输出
1.字符输入函数getchar()
getchar()函数的功能是从键盘上输入一个字符。其一般形式为:getchar();通常把输入的字符赋给一个字符变量,构成赋值语句,如:
char c; c=getchar();
使用getchar()函数应注意的问题:
(1)getchar()函数只能接受单个字符,输入数字也按字符处理。输入多个字符时,只接收第一个字符。
(2)适用本函数前必须包含文件“stdio.h”。
2.字符输入函数putchar()
putchar()函数的功能是在显示器上输出单个字符。一般形式为:putchar(字符变量);
第五部分 字符串数据的输入/输出函数
1.puts()函数(字符串的输入函数)
puts()函数的功能是向标准输出设备(屏幕)写字符串并换行。其一般格式为:puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。
说明:(1)puts()函数的功能与printf("%s/n",s);函数的功能基本相同。所不同的是puts()函数执行结束后自动换行,而printf("%s/n",s);函数只有当格式控制字符串中有“/n”时,才会自动换行。
(2)puts()函数只能输出字符串,不能输出数值或进行格式转换。
(3)可以将字符串直接写入puts()函数的自变量中。如:puts("Hello,TurboC2.0");
2.gets()函数(字符串的输入函数)
gets()函数的功能是从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。其一般格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。
输入字符串时使用gets函数与scanf函数的最大区别在于:gets函数在输入字符串时,可以输入空格,也就是说空格作为字符串的一部分输入。而scanf函数不能输入空格,即遇到空格时,认为字符串输入结束。
C语言中输入输出是以计算机为主体的。输入是指从标准输入设备(键盘)为程序中不同类型的变量赋值,输出是指向标准输出设备(显示器)输出表达式的值。
第二部分 数据的格式化输入
格式输入函数scanf,功能是按用户指定的格式,从键盘上把输入输入到指定的变量中。
2.1 格式化输入的格式
1.格式
scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,他是从键盘上输入的数据按指定的格式赋给相应的输入项。一般格式为:
scanf("格式控制字符串","输入项列表");
其中,格式控制字符串的作用是控制输入项列表中各输入项的输入格式,但不能显示非格式字符串,也就是不能显示提示字符串。提示字符串一般包括普通字符串和格式控制字符串。输入项列表则由一个或多个变量的地址组成,当变量地址有多个时,各变量地址之间必须用逗号“,”分隔。变量地址是由地址运算符“&”后跟变量名组成的。这个地址就是编译系统在内存中分配的地址。
2.地址的概念
变量的地址是C编译系统分配的,用户不必关心具体的地址是什么。
变量的地址和变量值的关系如下:
&a----->a 567
a为变量名,567为变量的值,&a是变量a的地址。在scanf语句的格式中,输入时要用一个以上的空格或<Enter>键作为每两个输入数之间的间隔。
2.2 格式控制字符和普通字符
1.格式控制字符
格式控制字符串规定了输入项中变量以何种类型的数据格式被输入,应包括由“%”引导的修饰符和格式字符。其一般格式如下:
%[<修饰符>]<格式字符>
说明:方括号中的内容为可选项。
1)格式字符及其意义
格式字符 | 意义 |
d | 输入一个十进制整数 |
0 | 输入一个八进制整数 |
x | 输入一个十六进制整数 |
f | 输入一个小数形式的浮点数 |
e | 输入一个指数形式的浮点数 |
c | 输入一个字符 |
s | 输入一个字符串 |
A. 修饰字段宽度的数字
用十进制整数指定输入的宽度(即字符串)。例如,scanf("%3d","&a");指按宽度3输入一个整数赋给变量a.
B. 字符l和h
可以和d、0、x一起使用,加l表示输入长整数类型(如%ld)和双精度浮点数(如%lf)。加h表示输入的数据为短整型数据,例如,scanf("%10ld%hd",&x,&i);表示x按宽度为10的长整数读入,而i按短整型读入。
C. 字符*
“*”表示输入该字符值后,不将该值赋予相应的变量,即跳过该输入值。例如,scanf("%4d%*d%4d"&x,&y,&z,);执行该语句,若输入为:1 2 3,则结果为x=1,z=3,y未赋值,2被跳过。
3)使用scanf函数须注意以下几点:
A. scanf函数中没有精度控制,如scanf("%5.2f",&a);是非法的。不能企图用此语句输入小数位为2位的整数。
B. sacnf中要求给出变量地址,若给出变量名则会出错。如scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。
C. 在输入多个数值数据时,若格式控制串中没有非格式字符作为输入数据之间的间隔,则可用空格,<Tab>键或<Enter>键作为间隔。C编译在碰到空格,<Tab>键或<Enter>键或非法数据(如对"%d"输入"12A"时,A即为非法数据)时即认为该数据输入结束。
D. 在输入字符数据时, 若格式控制串中无格式字符,则认为所有输入的字符均为有效字符。
如:
scanf("%c%c%c",&a,&b,&c);
输入为:d e f 则把'd'赋给a,' '空格赋给b,'e'赋给c.只有输入def时,才会把'd'赋给a,'e'空格赋给b,'f'赋给c。如果在格式控制中加入空格作为间隔,如scanf("%c %c %c",&a,&b,&c);则输入时各数据之间必须加空格。
例1:scanf函数输入字符时的技巧1
#include<stdio.h>
main(){
char a,b;
printf("input character a,b/n");
scanf("%c%c",&a,&b);
printf("%c%c/n",a,b);
}运行结果为:
input character a,b
M N
M
input character a,b
MN
MN
由于scanf函数"%c%c"中没有空格,输入M N时,输出结果只有M,因为N接受的是空格。而当输入MN时,则可输出MN两个字符。
例2:scanf函数输入字符时的技巧2
#include<stdio.h>
main(){
char a,b;
printf("input character a,b/n");
scanf("%c %c",&a,&b);
printf("/n%c%c/n",a,b);
}
运行结果为:
input character a,b
M N
MN
本例表示scanf格式控制串"%c %c"之间有空格,输入的数据之间也必须有空格间隔。
E. 如果格式控制串中有非格式字符,则输入时必须输入该给格式字符。
如:
scanf("%d,%d,%d",&a,&b,&c); 其中用非格式符“,”作为间隔符,故输入时的格式应为:5,6,7
又如:
scanf("a=%d,b=%d,c=%d",&a,&b,&c); 输入时的格式应为:a=5,b=6,c=7
F. 如输入的输入和输出地类型不一致,虽然能够通过编译,但结果却不正确。
例3:输入的数据和输出的类型一致性问题
#include<stdio.h>
main(){
int a;
printf("input a number/n");
scanf("%d",&a);
printf("%ld/n",a);
}
运行结果为:
input a number
12345567678
44332456
由于输入数据的类型为整形,而输出语句的格式串中说明输出结果的类型为长整型,因此输出结果和输入结果不符,需对程序进行改进。
例4:当输入数据的类型改为长整型后,输入输出结果相等。
#include<stdio.h>
main(){
long a;
printf("input a number/n");
scanf("%ld",&a);
printf("%ld/n",a);
}
运行结果为:
input a number
1234567890
1234567890
例5:输入3个小写字母,输出其ASCII码值和对应的大写字母。
#include<stdio.h>
main(){
char a,b,c;
printf("input three character/n");
scanf("%c %c %c",&a,&b,&c);
printf("%d %d %d/n",a,b,c);
printf("%c %c %c/n",a-32,b-32,c-32);
}
运行结果:
input three character
a b c
97 98 99
A B C
2. 普通字符
数据输入格式:在输入时两个数据之间的格式与格式控制字符后的内容有关
1)格式控制字符后不跟任何内容时,数据输入时两个数据之间必须用空格隔开。如果是字符,则不必在其左边留空格。
例8:数据输入格式示例1
#include<stdio.h>
main(){
int a;
float b;
char c;
scanf("%d%f%c",&a,&b,&c);
printf("a=%d,b=%f,c=%c/n",a,b,c);
}
运行结果:
2 3.5f
a=2,b=3.500000f,c=f
2)格式控制字符后跟“,”时,输入数据时两个数据之间必须用“,”隔开。
例9:数据输入格式示例2
#include<stdio.h>
main(){
int a;
float b;
char c;
scanf("%d,%f,%c",&a,&b,&c);
printf("a=%d,b=%f,c=%c",a,b,c);
}
运行结果:
2,3.5,f
a=2,b=3.500000f,c=f
第三部分 数据的格式化输出
1.数据的格式化输出格式
printf函数的功能是按格式控制字符串控制的格式,向默认输出设备(一般为显示器)输出在输出列表中列出的各输出项的值,其基本格式为:
printf("格式控制字符串","输出项列表");
输出项可以为常量、变量或表达式,其类型、顺序与个数必须与格式控制字符串中格式控制字符的类型、顺序与个数一致,当有多个输出项时,各项之间用逗号隔开。格式控制字符必须用双引号括起来,它包括格式控制符、转义字符和普通字符3类字符。
2. 格式控制字符和普通字符
(1)格式控制字符
一般格式为:
%[<修饰符>]<格式字符>
格式字符规定了相应输出项的输出格式,常见格式控制字符如下表:
格式字符 | 作用 |
%d或%i | 以带符号的十进制形式输出整数(正数不输出符号) |
%o | 以八进制无符号形式输出整数(不输出前导0) |
%x或%X | 以十六进制无符号形式输出整数(不输出前导0x),格式说明字符用x时以小写形式输出十六进制数码a~f,用X时输出对应的大写字母 |
%u | 以十进制无符号形式输出整数 |
%c | 以字符型数输出一个字符 |
%s | 输出字符串中的字符,直到遇到‘/0’ |
%f | 以小数形式输出单、双精度数,默认输出6位小数 |
%e或%E | 以标准指数形式输出单、双精度数,小数部分默认输出6位小数,格式说明字符用e时指数以“e”表示,用E时指数以“E”表示 |
%g或%G | 由系统自动选定%f或%e格式,以使输出宽度最小,无输出无意义的0,用G时若以指数形式输出则选择大写字符。 |
1)字符宽度修饰符,如下表:
修饰符 | 格式说明 | 意义 |
m | %md | 以宽度m输出指定的整型数,不足m位时,左边用空格补齐 |
0m | %0md | 以宽度m输出指定的整型数,不足m位时,左边用0补齐 |
m,n | %m.nf | 以宽度m输出指定的整形小数(包括小数点),小数位为n位 |
可以看出,当指定宽度小于数据的实际宽度时,对整数,按该数的实际宽度输出,对浮点数,相对于小数位上的数四舍五入。例如,12.34567按%5.2f输出,输出12.35。若宽度小于等于浮点数整数部分的宽度,则该浮点数按实际位数输出,但小数位数仍遵守宽度修饰符给出的值。如上面的12.34567按%2.1f输出,结果为12.3.
在实际应用中,还有一种更为灵活的宽度控制方法,用常量或变量的值作为输出宽度,方法是以一个“*”作为修饰,插入到%之后。
例如,设i=123,printf("%*d",5,i);此处宽度为5,输出为:123。程序中可以用一个整型变量k来指示宽度:printf("%*d",k,i);可以根据k的值动态的决定i的显示宽度,这在解决某些问题时是十分有用的。
2)对齐方式修饰符。负数“-”为“左对齐”控制符,一般默认所有输出数据为右对齐格式,加一个“-”号,则变为“左对齐”。
例如,i=123,a=12.34567,printf("%4d/t%10.4f",i,a);输出为:
/ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
0 | 1 | 2 | 3 | 1 | 2 | . | 3 | 4 | 5 | 6 | 7 |
/ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
0 | 1 | 2 | 3 | 1 | 2 | . | 3 | 4 | 5 | 6 | 7 |
/ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
0 | 1 | 2 | 3 | 1 | 2 | . | 3 | 4 | 5 | 6 | 7 |
%hd表示以短整型输出对应表达式的值。
%lf表示以双精度型输出对应表达式的值。
%ld表示以长整型输出对应表达式的值。
%hu表示以无符号短整型输出对应表达式的值。
(2)普通字符
普通字符包括可打印字符和转义字符,可打印字符主要是一些说明字符,这些字符按原样显示在屏幕上。转义字符是不可打印的字符,他们其实是一些控制字符,控制产生特殊的输出效果。
例如,i=123,n=456,a=12.3457,且i为整形,n为长整型。输出为:
/ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
1 | 2 | 3 | 1 | 2 | . | 3 | 4 | 5 | 7 | ||||||||||||
4 | 5 | 6 |
在C语言中,如果要输出“%”,则在控制字符中用两个“%”表示,即“%%”。
例10:分析下列程序的执行结果。
#include<stdio.h>
main(){
int a=16;
char e='A';
unsigned b;
float d;
b=65535;
d=123.45;
printf("a=%d,%4d,%-6d/n",a,a,a);
printf("%o,%x,%u,%d/n",b,b,b,b);
printf("%f,%e,%13.2e,%g/n",d,d,d,d);
printf("%c,%s,%7.3s/n",e,"China","Beijing");
}
运行结果为:
a=16, 16,16
177777,ffff,65535,65535
123.449997,1.234500e+002, 1.23e+002,123.45
A,China, Bei
第四部分 字符数据的输入/输出
1.字符输入函数getchar()
getchar()函数的功能是从键盘上输入一个字符。其一般形式为:getchar();通常把输入的字符赋给一个字符变量,构成赋值语句,如:
char c; c=getchar();
使用getchar()函数应注意的问题:
(1)getchar()函数只能接受单个字符,输入数字也按字符处理。输入多个字符时,只接收第一个字符。
(2)适用本函数前必须包含文件“stdio.h”。
2.字符输入函数putchar()
putchar()函数的功能是在显示器上输出单个字符。一般形式为:putchar(字符变量);
第五部分 字符串数据的输入/输出函数
1.puts()函数(字符串的输入函数)
puts()函数的功能是向标准输出设备(屏幕)写字符串并换行。其一般格式为:puts(s); 其中s为字符串变量(字符串数组名或字符串指针)。
说明:(1)puts()函数的功能与printf("%s/n",s);函数的功能基本相同。所不同的是puts()函数执行结束后自动换行,而printf("%s/n",s);函数只有当格式控制字符串中有“/n”时,才会自动换行。
(2)puts()函数只能输出字符串,不能输出数值或进行格式转换。
(3)可以将字符串直接写入puts()函数的自变量中。如:puts("Hello,TurboC2.0");
2.gets()函数(字符串的输入函数)
gets()函数的功能是从标准输入设备(键盘)读取字符串直到回车结束,但回车符不属于这个字符串。其一般格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。
输入字符串时使用gets函数与scanf函数的最大区别在于:gets函数在输入字符串时,可以输入空格,也就是说空格作为字符串的一部分输入。而scanf函数不能输入空格,即遇到空格时,认为字符串输入结束。
相关文章推荐
- C--数据输入输出
- 使用汇编实现从标准输入获取数据和标准输出输出数据
- C基础 - 数据输入与输出(4)
- 数据存储与输出输入
- 第九周任务四之 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- vtk类之vtkRotationalExtrusionFilter:建模筛选器, 它采用多边形数据作为输入,并生成输出的多边形数据
- Java 输入一个数放到变量n中,如果这个数大于0.计算1+2+3+。。。+(n-1)+n的结果, //否则输出 输入的撒数据有误
- C语言基础学习基本数据类型-变量的输出与输入
- Java基本数据类型的输入输出
- 这是一个求两数之和的题目,输入多对用空格分开的两个数a b,输出a+b的和,每一对数据的和占一行。编写代码时需要注意的是,由于没有指出有多少对输入数据,因此我们可以编写如下代码:
- ACM 4描述 输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。输入 第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,
- 从键盘输入20个整数将奇数&偶数分别存在不同的数组中并按先奇数后偶数的顺序输出这两个数组中的数据
- 数据输入输出语句(关于scanf函数)
- 数据的输入和输出
- 定义函数areaZ,功能是求圆锥体积。在主函数中输入半径r和高h,调用函数areaZ求体积,并在主函数中输出圆锥的体积,其中变量r,h均为double型数据。(公式v=h*3.14*r2/3)。
- 第13周-项目1-小玩文件-用键盘输入文件名,统计输出类似下面的数据
- 2.C#的输入、输出与运算符、数据类型
- 如何在应用中通过邮件输入和输出数据
- C语言基础:进制转换,变量,常量,表达式,基本数据类型,输出函数,输入函数,运算符.
- java创建一个单链表,接受输入的数据,并输出