C语言回车字符 100
我想问下,如果有多个scanf语句的时候,什么时候要考虑回车字符?比如说,scanf("%d”,&a);scanf(%c",&b);是不是上次输入数据以后回车,回车字符会...
我想问下,如果有多个scanf语句的时候,什么时候要考虑回车字符?比如说,
scanf("%d”,&a);
scanf(%c",&b);
是不是上次输入数据以后回车,回车字符会遗留下来对下一个scanf造成影响?什么时候要考虑回车键的影响问题?请知道这方面知识的告诉下,谢谢了,我对这个很模糊,初学者。。。。 展开
scanf("%d”,&a);
scanf(%c",&b);
是不是上次输入数据以后回车,回车字符会遗留下来对下一个scanf造成影响?什么时候要考虑回车键的影响问题?请知道这方面知识的告诉下,谢谢了,我对这个很模糊,初学者。。。。 展开
展开全部
像你举这个例,输入a的值以后,回车,程序则完成第一个scanf语句,接着运行,则会叫你输入b的值。像你这种,可以将2句合为一句,
即scanf(“%d,%c”,&a,&b)
而且对于#include <stdio.h>
int main()
{
int x,y;
char a,b;
scanf("%d,%d", &x,&y);
printf("x=%d, y=%d\n", x, y);
scanf("%c\n",&a);
scanf("%c\n", &b);
printf("a=%c,b=%c\n", a, b);
return 1;
}
而言,还是一起的比较好
#include <stdio.h>
int main()
{
int x,y;
char a,b;
scanf("%d,%d", &x,&y);
printf("x=%d, y=%d\n", x, y);
getchar();
scanf("%c",&a);//a=getchar();
scanf("%c", &b);//b=getchar();
printf("\n");
printf("a=%c,b=%c\n", a, b);
return 1;
}
后者就可以了。用getchar获得回车
即scanf(“%d,%c”,&a,&b)
而且对于#include <stdio.h>
int main()
{
int x,y;
char a,b;
scanf("%d,%d", &x,&y);
printf("x=%d, y=%d\n", x, y);
scanf("%c\n",&a);
scanf("%c\n", &b);
printf("a=%c,b=%c\n", a, b);
return 1;
}
而言,还是一起的比较好
#include <stdio.h>
int main()
{
int x,y;
char a,b;
scanf("%d,%d", &x,&y);
printf("x=%d, y=%d\n", x, y);
getchar();
scanf("%c",&a);//a=getchar();
scanf("%c", &b);//b=getchar();
printf("\n");
printf("a=%c,b=%c\n", a, b);
return 1;
}
后者就可以了。用getchar获得回车
展开全部
请要有这几个方面要注意:
一、两个数连续输入:scanf("%d%d"...)这种形势,中间要用空格分开
二、后面如果有多个getchar(),会把缓冲区里的所有字符全部取光,这种情况最恶心,很很常见,建议你看一下:http://hi.baidu.com/i_phone/blog/item/0de3ddfdc64c2247d6887d1b.html 他讲的非常详细。
一、两个数连续输入:scanf("%d%d"...)这种形势,中间要用空格分开
二、后面如果有多个getchar(),会把缓冲区里的所有字符全部取光,这种情况最恶心,很很常见,建议你看一下:http://hi.baidu.com/i_phone/blog/item/0de3ddfdc64c2247d6887d1b.html 他讲的非常详细。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1回车字符不会遗留下来对下一个scanf造成影响。
2回车字符会遗留下来对下一个getchar、getch造成影响。
2回车字符会遗留下来对下一个getchar、getch造成影响。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
include <stdio.h>
int main(void)
{
char buf[1024];
char ch;
scanf("%s", buf);
scanf("%c", &ch);
printf("%s,%c", buf, ch);
return 0;
}
这个就是一个最简单的例子。
其实有简单的方法解决这个问题。
我们n=read(0, buf,1023);这样我们就能将回车符读入。
0代表标准输入,也就是从键盘读取,读到buf中,最大读1023个字节。
然后buf[n-1] = '\0';就可以了。
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char buf[1024] = {0};;
char ch;
int n;
n = read(0, buf, 1023);
buf[n-1] = '\0';
scanf("%c", &ch);
printf("%s%c\n", buf, ch);
return 0;
}
int main(void)
{
char buf[1024];
char ch;
scanf("%s", buf);
scanf("%c", &ch);
printf("%s,%c", buf, ch);
return 0;
}
这个就是一个最简单的例子。
其实有简单的方法解决这个问题。
我们n=read(0, buf,1023);这样我们就能将回车符读入。
0代表标准输入,也就是从键盘读取,读到buf中,最大读1023个字节。
然后buf[n-1] = '\0';就可以了。
#include <stdio.h>
#include <unistd.h>
int main(void)
{
char buf[1024] = {0};;
char ch;
int n;
n = read(0, buf, 1023);
buf[n-1] = '\0';
scanf("%c", &ch);
printf("%s%c\n", buf, ch);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
像你举这个例,输入a的值以后,回车,程序则完成第一个scanf语句,接着运行,则会叫你输入b的值。像你这种,可以将2句合为一句,
即scanf(“%d,%c”,&a,&b)。
即scanf(“%d,%c”,&a,&b)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询