1、 c+格式化输入输出2008-10-25 23:43:37标签:c+ 格式化 输入 休闲 输出cin 与 cout 一:标准输入函数 cin 不知道说它是个函数对还是不对,它是代表标准的输入设备-键盘。他是属于流的,他的用法和流的用法是一样的。也就是:cin变量; 小小的说明一下,输入多个变量可以写在一行,如:cinxyz; 这样写不是不允许,而是不好看,如果是不同的变量类型,那就更是没头没脑了。除了你,人家是不知道该输入什么的,所以,一般在输入语句的前面,我们一般都 要做一个提示,请输入,让人家心里有个底,知道这个变量是做什么的。 另外,这个函数是不用带地址符号“ couti; cout m
2、ain() int i; while(i!=-1) couti; /*请输入不是一个字符如a试试*/ couti;语句移到判断循环的语句中,那么,你输入的如果是不合法的变量,他将跳出循环。 cin 是用空格来分隔输入的。请看看如下的例子: /*一个空格分隔使输入的变量达不到希望的值*/ #include main() char str20; coutstr; /*你试着输入“hello word“*/ cout void main() int x=30, y=300, z=1024; cout void main() int x=30, y=300, z=1024; cout void mai
3、n() cout void main() cout void main() float f=2.0/3.0,f1=0.000000001,f2=-9.9; cout void main() float f=2.0/3.0,f1=0.000000001,f2=-9.9; coutf f1 f2endl; /正常输出 coutsetiosflags(ios:showpos); /强制在正数前加+号 coutf f1 f2endl; coutresetiosflags(ios:showpos); /取消正数前加+号 coutsetiosflags(ios:showpoint); /强制显示小数点后的
4、无效 0 coutf f1 f2endl; coutresetiosflags(ios:showpoint); /取消显示小数点后的无效 0 coutsetiosflags(ios:scientific); /科学记数法 coutf f1 f2endl; coutresetiosflags(ios:scientific); /取消科学记数法 coutsetiosflags(ios:fixed); /按点输出显示 coutf f1 f2endl; coutresetiosflags(ios:fixed); /取消按点输出显示 coutsetprecision(18); /精度为 18,正常为 6
5、 coutf f1 f2endl; coutsetprecision(6); /精度恢复为 6 在 c/c+系统中除了标准的输入输出外,还提供了更多的输入函数。这写函数主要有 getch(),getche(),getchar (),cin.get(),putch(),putchar(),cout.put(),gets(),cin.getline(),puts()。另外 还有些为了让缓冲区不影响程序的正确操作的缓冲去的操作,如:cin.putback(),fflush(stdin),cout.flush().我们 做一下简单的说明。 1、getch()和 getche(),非缓冲式输入,从键盘读
6、入一个字符。getch()读入字符不显示。有 conio.h支持。 2、cin.get(),getchar(),缓冲式输入,从键盘读入一个字符,并显示。getchar()由 stdio.h 支持,cin.get()由 iostream.h 支持。 3、putch()和 putchar(),非缓冲式输出,输出一个字符到显示器。putch()由 conio.h 支持,putchar()由 stdio.h 支持。 4、cout.put(),缓冲式输出,输出一个字符到显示器。由 iostream.h 支持。 5、gets()和 cin.geline(),缓冲式输入,读入一字符串(包括空格,不包括最后的
7、回车),gets()由 stdio.h 支持,cin.getline()由 iostream.h 支持。 6、puts(),非缓冲输出,输出一个字符串,由 stdio.h 支持。 7、cin.putback(),把一个字符送回输入缓冲区。 8、fflush(stdin),清除输入缓冲区操作。无法清除 cin.get()等带来的操作。 9、cout.flush(),清楚输出缓冲区。 在这里我们稍微说一下输入/输出缓冲区,这是为了减少程序访问 io 带来中断而设的一段空间。当程序满足某个刷新条件时,那就将清理缓冲区。具体条件为: 1、输入缓冲区 a,程序要求输入时,按下了回车键。 b,遇到程序结束。 c,遇到下一条输入语句。 d,遇到清除缓冲区操作 e,缓冲区溢出 2、输出缓冲区 a,输出缓冲区溢出 b,遇到下一条输入语句 c,使用刷新缓冲区迫使清除 d,程序结束。 缓冲区操作有时会带来程序的不正确的输入,如前面说的 scanf(),在连续输入的时候,会把一个回车赋给下一个字符变量。我们操作的时候一定要注意。