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个字符串,输出其中最短的字符串。若长度相同则输出出现较早的那一个

C语言【函数 数组 指针】利用指针求一维数组的数据元素之和

c语言怎么让文字右对齐

C/C++1C基础:数据类型,常量变量,输入输出,运算符,/if,switch,循环,数组,指针

C语言作业: 从键盘输入3个整数,按照从小到大的顺序输出

C/C++编程笔记:C++中的标准输入流 & 标准输出流