十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
将i=i++修改为i++,让i值自增。题主代码中i = i++有问题,i值不会自增,循环不会结束。会先使用i值,即将1赋值给i,所以在while循环中i的值会一直是1,循环无法停止,所以回车后不会结束。
创新互联建站2013年开创至今,先为山阳等服务建站,山阳等地企业,进行企业商务咨询服务。为山阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
第二个scanf里面不要加\n, 它要求输入字符串最后有回车,但系统默认回车是表示输入结束,不会把回车传给scanf,于是它就罢工了。
就是回车键不会被scanf收到。它收到的是一个空字符,而不是回车。 所以通常是用一个字符串来表示结束的。比如输入“end,循环就结束。在WINDOWS你可以用getch这个函数来抓到回车键。重新编写代码试试看。祝顺利。
2018-03-25 c语言为什么我这个程序输入了整数后按回车没有输出结果。哪里错... 2 2012-12-25 我在devC++ 上写了这么一个程序,可为什么运行时输入后回... 3 2011-05-10 C语言程序。
输入第一个数字后使用Tab键输入第二个数。。
这个是本身编译软件的问题,也不算是属于BUG。那是由于上一个输入输入的函数最后判断输入完毕的回车会在这里生效,而且你写getchar函数也会一同运行,解决办法就是写两个getchar。
你个scanf接收字符输入,每次输入字符后回车,回车也算一个字符,被下一次循环scanf直接接收了,所以才会跳。解决方法很多,比如:在每次输入完毕后,用scanf或getchar或getch把回车符号接收掉。
这些跟你的程序没关系。它是vs系列编程软件编译时,默认的要去找相关模块的符号文件。这个符号文件用于调试,一般编程不需要。看情况你的代码是正常退出了。问题就出现在scanf上。
scanf()函数就是根据你输入的换行符(你按回车键)来判断你的输入是否结束。如果你输入一个数,比如你要输入123,但你输入1是不是就自动换行。。
打开软件,直接使用int类型来定义一个变量用于保存getchar()返回的字符类型。接下来是循环,如下图所示,直到输入的字符为回车键则退出并输出所有输入的内容。
这样以空格隔开各个数字,输入若干以后按回车即可。但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。如果提升了容错性,那么代码将变得比较复杂。
当程序调用getchar时。将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符。要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCII码。用getch函数暂停程序运行,当按任意键后程序继续运行。
这还真有点小学问,如果是字符数组,if(a[i]!=\n) break;就可以了,但得把不需要的那个\n从数组中用a[i]=\0抹掉并添加了结束符。要是数字数组,比如整数数组呢,上面方法就不凑效了。
是因为fgets函数把最后输入的\n作为一个字符存储在字串末尾了,在\n之后才加一个\0,所以这里的回车是由字符串的最后一个字符\n产生的。