狠狠撸

狠狠撸Share a Scribd company logo
数据输入与输出 数据输出 数据输入
1  数据输出 C 语言无 I/O 语句, I/O 操作由函数实现 #include <stdio.h> 在 C++ 中,头文件 iostream 已经包含了上面的头文件
格式输出函数 格式: printf(“ 格式控制串”,输出表 ) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回 EOF(-1) 输出表:要输出的数据(可以没有,多个时以“ ,” 分隔) 格式控制串:包含两种信息 (1) 格式说明:  %[ 修饰符 ] 格式字符   ,用于指定  输出格式 (2) 普通字符或转义序列:原样输出格式字符
表格 int a=567;printf ( “%d”,a); int a=255;printf(“%x”,a); int a=65;printf(“%o”,a); int a=567;printf(“%u”,a); char a=65;printf(“%c”,a); printf(“%s”,“ABC”); float a=567.789;printf(“%e”,a); float a=567.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); printf(“%%”); 567 ff 101 567 A ABC 5.677890e+02 567.789000 567.789 % 说明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换 : 格式字符与输出项类型不一致 , 自动按指定格式输出 d,i x,X o u c s e,E f g %% 十六进制整数 不带符号十进制整数 十进制整数 指数形式浮点小数 单一字符 字符串 八进制整数 小数形式浮点小数 e 和 f 中较短一种 百分号本身
附加格式说明符(修饰符) .n 对实数 , 指定小数点后位数 ( 四舍五入 ) 修饰符 功  能 m 输出数据域宽 , 数据长度 <m, 左补空格 ; 否则按实际输出 输出数据在域内左对齐(缺省右对齐 ) - 输出数值时指定左面不使用的空位置自动填 0 0 在八进制和十六进制数前显示前导 0 , 0x # 在 d,o,x,u 前,指定输出精度为 long 型 在 e,f,g 前,指定输出精度为 double 型 l 对字符串 , 指定实际输出位数
例 例  int a=1234; double d=123.456; printf(“%08d”,a);  printf(“%010.2lf”,d);  0  例  int a=123; printf(“%o,%#o,%X,%#X”,a,a,a,a);  例  # //00001234 //0000123.46 //173,0173,7B,0X7B
格式输入函数 格式 : scanf(“ 格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中 , 并按回车键结束 返值:正常,返回输入数据个数 地址表:变量的地址,常用取地址运算符 & 格式字符 :d,i,o,x,u,c,s,f,e 例  scanf(“%d”,&a); 输入: 10  ? 则  a=10 例  scanf(“%x”,&a); 输入: 11  ? 则  a=17 2  数据输入
附加格式说明符(修饰符) 修饰符功能 l 修饰符 功  能 h m * 用于 d,o,x 前,指定输入为 short 型整数 用于 d,o,x 前,指定输入为 long 型整数 用于 e,f 前,指定输入为 double 型实数 指定输入数据宽度,遇空格或不可转换字符则结束 抑制符,指定输入项读入后不赋给变量 例  scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入  19991015  ?   则 1999 ? yy, 10  ? mm, 15  ? dd
一般以空格、 TAB 或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符 输入分隔符的指定 例  scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%d”,a,b,c); 输入  123  123  123 ?   输出  a=123,b=83,c=291 例  scanf(“%d:%d:%d”,&h,&m,&s); 输入  12:30:45 ?   则 12  ? h, 30  ? m, 45  ? s 例  scanf(“%d,%d”,&a,&b) 输入  3,4  ?   则 3 ? a, 4  ? b 例  scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入  a=12,b=24,c=36  ?
用“ %c” 格式符时,空格和转义字符作为有效字符输入 说明 : 如  scanf(“%c%c%c”,&c1,&c2,&c3); 若输入 abc ?   则 a ? c1,   ? c2, b  ? c3 输入数据时,遇以下情况认为该数据结束: 遇空格、 TAB 、或回车 遇宽度结束 遇非法输入 如  scanf(“%d%c%f”,&a,&b,&c); 若输入 1234a123o.26  ?   则  1234  ? a, ‘a’  ? b, 123  ? c 输入函数留下的“ 垃圾 ”: 例  int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%d”,x,ch); 执行: 123 ? 输出: x=123,ch=10 例  int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%d”,x,ch); 执行: 123 ? 输出: x=123,ch=10 解决方法: ( 1 )用 getchar() 清除 (2)  用格式串中空格或“ %*c” 来“吃掉” 例  int x; char ch; scanf(“%d”,&x); scanf(“  %c”,&ch); 或  scanf(“%*c%c”,&ch);
格式 : putchar( c ) 参数 : c 为字符常量、变量或表达式 功能:把字符 c 输出到显示器上 返值:正常,为显示的代码值;出错,为 EOF(-1) 字符输出函数 3.  getchar 函数与  putchar 函数
格式 :getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错 , 返回 EOF(-1) 字符输入函数   例  #include <iostream> using namespace std; int main() {  int c; printf(&quot;Enter a character:&quot;); c=getchar(); c++; printf(&quot;%c&quot;,c); return 0; } 运行结果: Enter a character:A ? B
例  从键盘输入大写字母,用小写字母输出 #include <iostream> using namespace std;  int main() {  char c1,c2; c1=getchar(); printf(&quot;%c,%d&quot;,c1,c1); c2=c1+32; printf(&quot;%c,%d&quot;,c2,c2); return 0; } 输入: A  ? 输出: A,65 a,97

More Related Content

笔谤颈苍迟蹿和蝉肠补苍蹿的用法

  • 2. 1 数据输出 C 语言无 I/O 语句, I/O 操作由函数实现 #include <stdio.h> 在 C++ 中,头文件 iostream 已经包含了上面的头文件
  • 3. 格式输出函数 格式: printf(“ 格式控制串”,输出表 ) 功能:按指定格式向显示器输出数据 返值:正常,返回输出字节数;出错,返回 EOF(-1) 输出表:要输出的数据(可以没有,多个时以“ ,” 分隔) 格式控制串:包含两种信息 (1) 格式说明: %[ 修饰符 ] 格式字符 ,用于指定 输出格式 (2) 普通字符或转义序列:原样输出格式字符
  • 4. 表格 int a=567;printf ( “%d”,a); int a=255;printf(“%x”,a); int a=65;printf(“%o”,a); int a=567;printf(“%u”,a); char a=65;printf(“%c”,a); printf(“%s”,“ABC”); float a=567.789;printf(“%e”,a); float a=567.789;printf(“%f”,a); float a=567.789;printf(“%g”,a); printf(“%%”); 567 ff 101 567 A ABC 5.677890e+02 567.789000 567.789 % 说明 格式字符要用小写 格式字符与输出项个数应相同,按先后顺序一一对应 输出转换 : 格式字符与输出项类型不一致 , 自动按指定格式输出 d,i x,X o u c s e,E f g %% 十六进制整数 不带符号十进制整数 十进制整数 指数形式浮点小数 单一字符 字符串 八进制整数 小数形式浮点小数 e 和 f 中较短一种 百分号本身
  • 5. 附加格式说明符(修饰符) .n 对实数 , 指定小数点后位数 ( 四舍五入 ) 修饰符 功 能 m 输出数据域宽 , 数据长度 <m, 左补空格 ; 否则按实际输出 输出数据在域内左对齐(缺省右对齐 ) - 输出数值时指定左面不使用的空位置自动填 0 0 在八进制和十六进制数前显示前导 0 , 0x # 在 d,o,x,u 前,指定输出精度为 long 型 在 e,f,g 前,指定输出精度为 double 型 l 对字符串 , 指定实际输出位数
  • 6. 例 例 int a=1234; double d=123.456; printf(“%08d”,a); printf(“%010.2lf”,d); 0 例 int a=123; printf(“%o,%#o,%X,%#X”,a,a,a,a); 例 # //00001234 //0000123.46 //173,0173,7B,0X7B
  • 7. 格式输入函数 格式 : scanf(“ 格式控制串”,地址表) 功能:按指定格式从键盘读入数据,存入地址表指定的 存储单元中 , 并按回车键结束 返值:正常,返回输入数据个数 地址表:变量的地址,常用取地址运算符 & 格式字符 :d,i,o,x,u,c,s,f,e 例 scanf(“%d”,&a); 输入: 10 ? 则 a=10 例 scanf(“%x”,&a); 输入: 11 ? 则 a=17 2 数据输入
  • 8. 附加格式说明符(修饰符) 修饰符功能 l 修饰符 功 能 h m * 用于 d,o,x 前,指定输入为 short 型整数 用于 d,o,x 前,指定输入为 long 型整数 用于 e,f 前,指定输入为 double 型实数 指定输入数据宽度,遇空格或不可转换字符则结束 抑制符,指定输入项读入后不赋给变量 例 scanf(“%4d%2d%2d”,&yy,&mm,&dd); 输入 19991015 ? 则 1999 ? yy, 10 ? mm, 15 ? dd
  • 9. 一般以空格、 TAB 或回车键作为分隔符 其它字符做分隔符:格式串中两个格式符间字符 输入分隔符的指定 例 scanf(“%d%o%x”,&a,&b,&c); printf(“a=%d,b=%d,c=%d”,a,b,c); 输入 123 123 123 ? 输出 a=123,b=83,c=291 例 scanf(“%d:%d:%d”,&h,&m,&s); 输入 12:30:45 ? 则 12 ? h, 30 ? m, 45 ? s 例 scanf(“%d,%d”,&a,&b) 输入 3,4 ? 则 3 ? a, 4 ? b 例 scanf(“a=%d,b=%d,c=%d”,&a,&b,&c); 输入 a=12,b=24,c=36 ?
  • 10. 用“ %c” 格式符时,空格和转义字符作为有效字符输入 说明 : 如 scanf(“%c%c%c”,&c1,&c2,&c3); 若输入 abc ? 则 a ? c1,  ? c2, b ? c3 输入数据时,遇以下情况认为该数据结束: 遇空格、 TAB 、或回车 遇宽度结束 遇非法输入 如 scanf(“%d%c%f”,&a,&b,&c); 若输入 1234a123o.26 ? 则 1234 ? a, ‘a’ ? b, 123 ? c 输入函数留下的“ 垃圾 ”: 例 int x; char ch; scanf(“%d”,&x); ch=getchar(); printf(“x=%d,ch=%d”,x,ch); 执行: 123 ? 输出: x=123,ch=10 例 int x; char ch; scanf(“%d”,&x); scanf(“%c”,&ch); printf(“x=%d,ch=%d”,x,ch); 执行: 123 ? 输出: x=123,ch=10 解决方法: ( 1 )用 getchar() 清除 (2) 用格式串中空格或“ %*c” 来“吃掉” 例 int x; char ch; scanf(“%d”,&x); scanf(“ %c”,&ch); 或 scanf(“%*c%c”,&ch);
  • 11. 格式 : putchar( c ) 参数 : c 为字符常量、变量或表达式 功能:把字符 c 输出到显示器上 返值:正常,为显示的代码值;出错,为 EOF(-1) 字符输出函数 3. getchar 函数与 putchar 函数
  • 12. 格式 :getchar( ) 功能:从键盘读一字符 返值:正常,返回读取的代码值;出错 , 返回 EOF(-1) 字符输入函数 例 #include <iostream> using namespace std; int main() { int c; printf(&quot;Enter a character:&quot;); c=getchar(); c++; printf(&quot;%c&quot;,c); return 0; } 运行结果: Enter a character:A ? B
  • 13. 例 从键盘输入大写字母,用小写字母输出 #include <iostream> using namespace std; int main() { char c1,c2; c1=getchar(); printf(&quot;%c,%d&quot;,c1,c1); c2=c1+32; printf(&quot;%c,%d&quot;,c2,c2); return 0; } 输入: A ? 输出: A,65 a,97