b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

scanf输入字符串 编程语言学习(二) 三种编程语言的基本输入输出

电脑杂谈  发布时间:2018-02-16 22:47:28  来源:网络整理

scanf如何输入字符串_scanf怎么输入字符串_scanf输入字符串

编程语言学习(二) ??三种语言的基本输入输出

概述:本章主要研究怎样读取各种形式的数据,怎样实现格式化输出的问题。

??

(一)读取各种形式的数据

??

一、C语言读取各种形式的数据

主要通过scanf()、getchar()、 gets()三个函数来实现:

(1)??scanf: ??int??scanf(格式化字符串,指针....);??返回顺利读到自己的值的变量数

注意点1:由于第二个参数后面开始就是指针了,所以读取字符串不用取地址符

注意点2:double类型用%lf ,float用%f,不可混淆否则值会错的。

注意点3:scanf会将tab space enter三个值认为一个值就是分隔符,代码:

float q,m;

??scanf("%f %f",&q,&m); //两个%f直接用了tab隔开 输入3_3依然顺利

??printf("%f%f",q,m); ??//输出3.00003.0000

注意点4:scanf读取过程中会略去分隔符,但是最后一个enter会被保留下来在缓冲区中。我们可以利用getchar()来证明这一点

(2)??getchar()函数

getchar()函数可以从缓冲区当中取出一个字符,返回回来。为了验证scanf的注意点4,我们有这样的代码:

int a,b;

scanf("%d %d",&a,&b); ??//输入33_33

putchar(getchar());

printf("%s","sb"); ??//输出 ??33 33

??

sb

可见33 33与sb之间多了一个\n,这个\n正是scanf剩下的。

(3)??gets函数 我们在读取含有空格键的字符串的时候,scanf就很不合适了,为此我们有了gets函数:

char a[20]={0};

scanf("%s",a); ????//输入 hello world

gets(a);

printf("%s",a);

putchar(getchar()); ????//被要求再次输入 我们输入88

printf("%s","sb");

??

输出界面:

hello world //本行是输入行

_world88 ??// 88也是我们的输入 scanf拿走了hello 留下_world

8sb ??//getchar()z只读了一个字节

我们可以看见,此处putchar(getchar())并没有换行,而是要求我们输入,可见gets函数不像scanf那样会留下尾巴,一口气全打包带走了,清空了缓冲区。

??

二、C++读取各种形式的数据

主要是三个函数cin,cin.get(),cin.getline()函数。

(1)??cin

单独的cin和scanf的功能是类似的,如下两行代码:

short??a = 0;

cin >>??a;

cout <<hex <<??a;??????//iomainp是需要的

//putchar(getchar());

if??(getchar() == '\n') {

cout <<??"is space!";

cout <<??endl;

}

cout <<??"sb"??<<??endl;

??

输入656563

控制台界面:

656563 ??//我故意让656563大于short的最大值32767 发现输出报错为0了,这个逻辑是对的

0is space! ????//可以看到cin与scanf一样留下了一个回车键,被我读取到了


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-81056-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 福山润
      福山润

      大学很多寝室都会生各种虫

    每日福利
    热点图片
    拼命载入中...