⑴ c语言中scanf、getchar等输入函数接收空格、回车符的是
scanf函数族在用%c接受输入时要接收空格和回车。%s时接受空格。
getchar函数族接受所有字符包括回车。
⑵ c语言怎样接受按行输入的一段用空格分开的数字
在 scanf 中,从键盘输入的一切数据,不管是数字、字母,还是空格、回车、Tab 等字符,都会被当作数据存入缓冲区。存储的顺序是先输入的排前面,后输入的依次往后排。按回车键的时候 scanf 开始进入缓冲区取数据,从前往后依次取。但 scanf 中 %d 只识别“十进制整数”。对 %d 而言,空格、回车、Tab 键都是区分数据与数据的分隔符。当 scanf 进入缓冲区中取数据的时候,如果 %d 遇到空格、回车、Tab 键,那么它并不取用,而是跳过继续往后取后面的数据,直到取到“十进制整数”为止。对于被跳过和取出的数据,系统会将它从缓冲区中释放掉。未被跳过或取出的数据,系统会将它一直放在缓冲区中,直到下一个 scanf 来获取。但是如果 %d 遇到字母,那么它不会跳过也不会取用,而是直接从缓冲区跳出。
来自网页链接
⑶ C语言中用scanf()和fscanf()读取空格
scanf和fscanf函数是不能读空格和回车符的,在读取的时候会自动过滤掉这些分隔符。
要想读空格,必须用gets函数,在string.h中有定义,需要实现include它。
gets的用法:
chara[10];
gets(a);
c++下也可以用getline函数,不过建议VC用户不要用,因为微软的C++编译器有个经典的getlinebug.在缓冲的时候会多缓冲一行。
⑷ c语言问题 char a[10]; scanf("%s",a);//(1) puts(a);//(
scanf函数
把空格、回车、TAB等看成输入项的分隔标志,引起当前输入项输入终止,也就是说scanf函数不能接收空格、回车、TAB等字符。所以输入a
b时,实际接收的字符只有a,所以得到结果1(字符串长度为1)
puts函数可以接收空格。所以输入a
b时,实际接收的字符为a
b,所以得到结果3(字符串长度为3)。
⑸ C语言如何输入一行有空格的字符串
C语言输入一行有空格的字符串的方法:
1、对于char
char s[100];
cin.getline(s,1000);//第二个参数表示允许输入的最大长度while(cin.getline(s,1000));
输入输出样例
输入:He llo
输出:He llo
2、对于string
string s;
getline(cin,s);while(getline(cin,s));
输入输出样例
输入:He llo
输出:He llo
(5)c语言什么能接收空格扩展阅读:
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度。
这可以给我们提供很多方便,高精度运算时每一位都可以转化为数字存入数组。
字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为 s=“a1a2···an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。
两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
⑹ 在C语言中,字符数组能不能接受中间带空格的字符串
//可以的.
#include <stdio.h>
#include <stdlib.h>
#define SZIEOFTEXT 5
void main()
{
char szText [] = "A B";
char text[SZIEOFTEXT] = {0};
int i = 0;
while ((szText[i] != '\0'))
{
text[i] = szText[i];
++i;
}
printf("the string is:\n%s\n",szText);
printf("the text is:\n");
for (i=0; i<SZIEOFTEXT; ++i)
{
printf("%c",text[i]);
}
printf("\n");
}
⑺ c语言里面gets(a)是什么意思
c语言里gets(a) 表示输入一个字符串到数组a,a表示读取一个字符串存入a中,字符串输入结束标志为换行符。
比如 输入321 cs dd回车
a中存储为 321 cs dd
(7)c语言什么能接收空格扩展阅读:
gets函数相关知识:
1、注意事项:gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以编程时应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
2、功能:从stdio流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘ ’空字符,并由此来结束字符串。
3、返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。
⑻ C语言中,gets能接收空格和tab吧函数的间接调用和嵌套调用一样吗
gets是读一行,可以接收空格和tab。
函数的间接调用和嵌套调用一样吗?
不一样。
举个例子,你就明白了。
void f1(int n)
{
}
void f2()
{
f1(1);
}
void f3()
{
f2();
}
以上是嵌套调用,f3调用f2,f2又调用f1。
void fun()
{
void (*ptfun)();
ptfun=f2;
ptfun();//间接调用f2
ptfun=f3;
ptfun();//间接调用f3
}
⑼ c语言 gets scanf
是这样的:你在输入b的值“2”的时候,要结束b的输入,就会用到ENTER键,而这个键对应的值虽然不会被读取,但是它会进入缓存区,然后程序执行到GETS(c)时,缓存区的ENTER值就会被读取,并赋给C,然后你又结束输入,再输入D,于是你运行的结果应该是:
a=1
b=2
c=
d=3
是不是?