这有一个理解的问题。 就是回车键不会被scanf收到。它收到的是一个空字符,而不是回车。 所以通常是用一个字符串来表示结束的。比如输入“end",循环就结束。在WINDOWS你可以用getch这个函数来抓到回车键。重新编写代码试试看。祝顺利。
1、除了%c的输入而言:scanf输入:abc[回车]后,遇到回车结束,但是回车还留在输入流中。下一个scanf在输入前碰到回车,会自动把回车抛弃,然后再输入:efg,再碰到回车结束。所以加了getchar()时,它会吃掉一个回车。如果不加,在输入前,它会自动删除这个回车,所以结果是一样的。重点是:空格、回车、跳格等结束符在输...
1、为了让输入输出在同一行显示,输入时应使用getche函数。该函数不用输入回车即可从控制台读取字符,读取字符后,立刻输出,则输入输出在同一行。函数名:getche()功 能:输入后立即从控制台取字符,不以回车为结束(带回显)用 法:int getche(void);头文件:<conio.h>返回值:返回输入字符对应的ASCII码...
你要把scanf语句中的\n都删掉 就可以了 scanf在你按下回车之后 结束输入 然后你在sacnf的字符串参数里面写\n 这个\n会和你敲击的回车匹配 然后你的scanf就找不到回车 无法结束输入
为什么输入字符串我按..printf("请输入顺序表主表:"); for(i = 0; i != '\n' && i < MaxSize; i ++) scanf("%d", &S1.lis
比如你有如下代码 chars[11];scanf("%10s",s);printf("%s",s);然后你输入"[空格][回车]...[...
就是说,空格,回车,跳格等结束符在输入前碰到的话,会自动抛弃,输入后碰到的话,就会认为结束 以上...
第二个scanf里面不要加\n, 它要求输入字符串最后有回车,但系统默认回车是表示输入结束,不会把回车传给scanf,于是它就罢工了。
include<stdio.h>int len(char s[]);main(){ char s[20]; gets(s); printf("%s %d",s,len(s));}int len(char s[]){ char *p=s; while(*p!='\0') /* *p!='\0' 是用指针所指向的内容和结束符相比*/ p++; return p-s;} ...