C/C++-style输入输出函数
Posted 一叶知秋
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++-style输入输出函数相关的知识,希望对你有一定的参考价值。
C风格的输入输出
(1) int getchar() 与 int putchar(int c)
getchar从stdin输入流中读取字符,每次只能读取一个字符。若想一次性读取多个字符,则可将其放入循环中。getchar读取所有类型的字符,包括空格。
putchar将一个字符打印到屏幕上,每次只能打印一个字符。例如:
char a;
while( (a=getchar()) != ‘e‘) ##输入流中是一长串的窗口输入,getchar()从输入流中挨个读取字符,写入到a中,当碰到字符e时,终止循环。
putchar(a); ## 该处也可用 printf("%c", a);
(2) char* gets(char *s)和 int puts(const char* s)
char* gets(char *s)函数从stdin中读取一行到s指向的缓存空间中, 一个新行或者EOF符号作为一次读取的终结。
例如:
char str[100];
gets(str);
printf("\n You entered: ");
puts(str);
gets(str)同样可以用在循环中,作为判定条件。C++中也使用std::gets函数,该函数在C++11中被deprecated(弃用,仍然可以用),在C++14中将被完全移除。
(3) int scanf(const char* format, ... )和 int printf(const char* format, ...)
format可以是%s(字符串), %d(整数), %c(字符), %f(浮点数)等。
scanf可以忽略空格。scanf("%d‘, &a); 级联输入方式:
int a,b;
scanf("%d %d", &a, &b);
该中输入方式也可作为循环的判定条件,while(scanf("%d %d", &a, &b)) 和下述C++风格的输入std::cin类型,输入数据类型和变量的声明类型不同时,scanf函数返回0, 循环终止。
#########C++风格的输入输出###########
输入方式为std::cin>> a, 也可以采用级联输入的方式std::cin>>a>>b. 该输入方式可以忽略空格。
需要注意的是最终得到的输入值和a,b声明的类型有很大关系,例如:
int a;
char b;
cin>>a>>b;
编译后,加载运行时,输入29, 29. 则最终得到的a=29, 而b=2。即a被定义为一个算数类型int,29输入到a中,b被定义为一个字符类型,只读取第一个字符2.
同时也要注意 cin>>a的返回类型,例如:
while(cin>>a)
当输入类型与a的声明类型不一致时,cin>>a会返回0,跳出while循环。当输入类型一致时,返回一个非零值,循环继续。
输出方式为std::cout<< c<< endl. endl为换行,使用很简单,在此不赘述。
以上是关于C/C++-style输入输出函数的主要内容,如果未能解决你的问题,请参考以下文章
C语言:输入n和n个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个