您现在的位置是:首页 > 科技资讯科技资讯

scanf(gets和scanf有什么区别)

编辑 2024-06-04 12:35:40 科技资讯

1. scanf,gets和scanf有什么区别?

都是从输入流中读取数据,但功能有很大差别:

1 操作类型不同。gets函数仅用于读入字符串。scanf为格式化输出函数,可以读入任意C语言基础类型的变量值,而不是仅限于字符串(char*)类型。

2 截止字符不同。gets函数固定的以换行符作为结尾,遇到换行符时结束输入。scanf函数默认以空白函数结尾,同时可以对截止函数进行修改。

3 对截止字符处理不同。gets函数会读入截止字符/n, 同时将/n自动替换为/0.scanf遇到截止字符时不会继续读取,截止字符将存储于输入缓冲中。

4 返回值类型不同。gets的返回值为char*型,当读入成功时会返回输入的字符串指针地址,出错时返回NULL。scanf返回值为int型,返回实际成功赋值的变量个数,当遇到文件结尾标识时返回EOF。

scanf(gets和scanf有什么区别)

2. 这道题为什么不能用scanf输入字符串?

scanf是可以输入字符串的,这道题错了。scanf可以输入字符、字符串,这两种都可以。

3. scanf函数只有c吗?

不是的。

变量a,b,c的地址是在编译阶段分配的(存储顺序由编译器决定)。

scanf()函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。

c 读入域宽指定的数目个字符组成的字符序列(后面不会加上空字节),如果省略宽度则读入单字符。如%c或%1c读入单字符,%2c读入两个字符(后面不会加上空字节),以此类推。

4. c语言怎么使用scanf多次赋值?

scanf的工作原理:(一般情况,即格式串中没有其它字符)用户的任何输入将被保存在缓冲之中,当有scanf时,scanf则从此缓冲队列中读取字符,直至遇到空白字符或者是此字符不可能是本次的输入为止,并把此字符放回原队列,此字符成为队列的第一个字符。

当下一次scanf被调用时,将从第一个字符读取,若此时为%d,%f,%g,%e等数据格式串,则可跳过空白字符,直至出现数字为止;若此时为%c等字符(串)格式串,则会把空白字符读入,并给此变量赋值。

5. c语言if语句能写scanf语句吗?

是的,C语言的if语句可以写scanf语句。if语句用于判断某个条件是否为真,根据结果执行不同的操作。而scanf函数用于从标准输入中读取数据,并将其存储在指定的变量中。

因此,在if语句中使用scanf函数可以实现根据用户输入的不同值,执行不同的代码块。

例如,可以使用if语句结合scanf函数来实现根据用户输入的不同数值判断并执行相应的操作,比如判断一个数是否为偶数,或者根据用户输入的选项进行不同的处理等。总之,if语句可以与scanf语句结合使用,以实现根据条件执行不同的代码逻辑。

6. scanf后面一定要加取值符吗?

首先要先认识scanf()函数: 函数原型:int scanf(char *format[,argument,...]); 函数说明:scanf()函数是通用 终端 格式化 输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何 固有类型的 数据并自动把数值 变换 成适当的 机内格式。 调用格式为:scanf("<格式化字符串>",<地址表>); 函数返回值:scanf()函数操作成功时,返回成功赋值的数据项数,出错时则返回EOF。 格式化字串一般包括 : %s(字符串) %c(单字符) %d(整数) %lf(double) %f(float) , 后面的argument一定要是地址类型变量,当变量名就是对应的指针变量时,就不需要加&符号了。 &是地址运算符,意思是获得变量的地址。如: char str[100]; int i; scanf("%s", str ); //str本身就是地址,所以,不需要加& scanf("%d", &i ); //i不是指针变量,必须要加地址

7. scanf如何正确使用?

因为情况3里,1、你第一次输入50时,程序执行到while那一行,50被赋值给base,并进入循环。

2、运行到scanf("%*s");这时候你要输入一个字符串然后被忽略掉。

3、才运行到输出提示那一步。

4、回到了while那一行,你输入一个5,然后正确输出5。这种问题自己debug走一下就好了,应该很简单的吧。。。——————————萧大的意思应该是不要手工输测试数据,但是提交到oj上的代码就是要用到scanf,没办法呀。

这时候有一个技巧是用freopen去重定向输入,把要输入的数据写在一个文件里就好了。这样平时测试不用手工输数据,提交时只要注释掉freopen这行代码就行了。

本文标签:

很赞哦! ()

横幅广告