c语言 scanf 和 读取回车
发布网友
发布时间:2022-04-26 23:29
我来回答
共5个回答
热心网友
时间:2022-06-20 03:48
注意下判断语句,其实是在拿scanf的返回值在和EOF或\n比较。
scanf的返回值类型为int,值由后面的参数决定,返回值表示成功读入的数据的个数。
如:scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2。
如果只有a被成功读入,返回值为1。
如果a和b都未被成功读入,返回值为0。
如果遇到错误或遇到end of file,返回值为EOF。
扩展资料:
注意事项
scanf 的各种格式中,%d、%c、%s三种最常用,通常都是以回车作为一次输入的结束。由于对字符解析方式及字符特点不同(如数字中一般不会出现空格回车等特殊字符)不同,%d格式一般不会在连续输入时,遇到问题。而%s和%c却会出现各种各样的问题,比如回车问题,空格问题等。
scanf()函数返回的值为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。在类型匹配错误的时候,以非正常的方式退出。可以利用scanf函数的返回值判断输入是否正确,并进行流程控制:
int i = 0; char c1[15]; while((scanf("%c", &c1[i])!=EOF) && i<14)
{
i++;
}
热心网友
时间:2022-06-20 03:49
#include<stdio.h>
int main(){
inti;
charj;
scanf("%d",&i);
scanf("%c",&j);
printf("%d%c\n",i,j);
return0;
}
扩展资料
C语言fgets,gets,scanf对于输入完毕后的回车符的处理
1、注意fgets函数的第二个参数n,是包括结束符在内的总字数,实际强制性从键盘只能读入n-1个字符。
2、strlen函数遇结束符就会停止,返回结束符之前的字符数。
3、在scanf函数中,可以使用%c来读取一个字符,使用%s读取一个字符串,但是读取字符串时读到空格为止,因此只能读取一个单词,而不是整行字符串。而使用fgets可以读取一个字符串,空白符都会被当成输入。
热心网友
时间:2022-06-20 03:49
C语言中,scanf是格式化输入的函数。在大多数的格式字符处理时,scanf会忽略回车。要读取回车,只有使用%c的格式。
%c格式,对应变量为char型,功能为读取一个字符,并存入到对应的字符型变量中。
比如,循环读取字符,直到遇到回车结束,可以写作
char c;
while(1)
{
scanf("%c",&c);
if(c == '\n') break;//读取到换行符,即回车,退出循环。
}
热心网友
时间:2022-06-20 03:50
注意下判断语句,其实你是在拿scanf的返回值在和EOF或\n比较!!
scanf的返回值类型为int,值由后面的参数决定,返回值表示成功读入的数据的个数
如:scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
参考资料:http://ke.baidu.com/view/1390039.htm
热心网友
时间:2022-06-20 03:50
scanf读取回车?
char c;
scanf("%c",&c);
if(c=='\n')printf("Yes")
c语言 scanf 和 读取回车
scanf的返回值类型为int,值由后面的参数决定,返回值表示成功读入的数据的个数。如:scanf("%d%d", &a, &b);如果a和b都被成功读入,那么scanf的返回值就是2。如果只有a被成功读入,返回值为1。如果a和b都未被成功读入,返回值为0。如果遇到错误或遇到end of file,返回值为EOF。
scanf输入字符串会不会读取回车?
不会。scanf()是C语言中的一个输入函数。形式:int scanf(const char * restrict format,...);format指向的字符串包含的格式指令中的s读入一个的字符序列,后面会加上空字节,遇到空白字符(\t \r \n 空格等)完成读取。scanf输入字符串的时候不会接收Space空格,回车Enter,Tab键,则认为输入结束。
C语言:scanf不是需要用回车键来确认输入吗?
1、除了%c的输入而言:scanf输入:abc[回车]后,遇到回车结束,但是回车还留在输入流中。下一个scanf在输入前碰到回车,会自动把回车抛弃,然后再输入:efg,再碰到回车结束。所以加了getchar()时,它会吃掉一个回车。如果不加,在输入前,它会自动删除这个回车,所以结果是一样的。重点是:空格、回...
c语言的scanf接收到底是忽略空格还是不忽略呢?
或者1,回车2 或者1,回车回车。。2 (只需要保证1紧接着逗号就行,随便奇葩的输入都正确)此时可以得出结论,scanf接收不但忽略空格还忽略回车,但是在有逗号的情况下必须遵循一定的格式,否则出错。2.再看输入数据为char类型的情况:char a, b;scanf("%c%c",&a,&b);// 或者scanf("%c,%c",...
c语言中 scanf后面一定要跟个 getchar吃回车吗?
c语言中在读取键盘数据时,一般是带缓存的数据输入,需要按回车键才能完成该“行”数据的输入确认。而 scanf()函数对这个回车确认符并不进行处理,回车符会留在输入缓存区中。因此,在下一个读“字符”操作函数(getchar, scanf("%c"), gets()等)运行时,会读到这个字符。而在读数值型数据或...
...调用函数中用了scanf.之后主函数的scanf和printf语句就不执行了?怎...
虽说意义不明,所以,你在操作过程中有按回车键,这个操作会进入输入流,被后面那个scanf("%c",&ch);读取了,ch读取了回车,因此表现为Press any key to continue之前会有一次回车,实际上执行过。
C语言中为什么回车会被读取两次
本来就是这样的!输入num时要输入回车,比如输入了123回车,输入缓冲区里就存放了'1'、'2'、'3'、'\n'这样4个字符的值49、50、51、10。scanf在"%d"控制下只连续接收'1'、'2'、'3',碰到'\n'时便停止接收并把接收到的'1'、'2'、'3'转化成一个int数123赋给变量num,scanf便完成了任务...
C语言中scanf()与gets()函数的区别,哪一个可以读入空格啊?
2.scanf :当遇到回车,空格和tab键会自动在字符串后面添加'\0',但是回车,空格和tab键仍会留在输入的缓冲区中。gets:可接受回车键之前输入的所有字符,并用'\n'替代 '\0'.回车键不会留在输入缓冲区中 3.gets从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以...
求解:为什么下列c语言程序中,后面单个字符还没有输入程...
第一个scanf,你输入了一个字符串和一个回车符,scanf不会处理掉回车符。所以下一个scanf读取了遗留下来的那个回车符。要想解决这个问题,第一个scanf结束后加getchar();
C语言问题,输入一串字符时,scanf和getchar是分别读到什么结束?
scanf 可以一次读取一个字符串或多个字符串 它是读取输入缓冲区,当输入回车后 才开始执行读取 如果是一次读入多个字符串,读取字符串的结束 和读入格式有关系 例如:scanf("%s %s",s1,s2) 执行时 遇到空格符后S1结束,剩余的字符串就给S2了 scanf("%s,%s",s1,s2) 这个输入字符串时,需要用逗号...