重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
ungetc(ch, stdin);将你读到的字符回退到输入流中
创新互联公司是一家集网站建设,寿光企业网站建设,寿光品牌网站建设,网站定制,寿光网站建设报价,网络营销,网络优化,寿光网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
比如上面的程序你先输入数字25,scanf读到i中,加到sum中,然后你再输入,调用ch=getchar(),发现ch不是' '也不是'\n',而是一个数,比如’7‘,显然这是你要继续加到sum中的数,要用scanf读到i中,但是你已经将这个'7'用getchar读出来了,只好用ungetc再把这个'7'给退回去
ungetc(b,stdin)成功时返回b。如果b没有被返送进输入缓冲区或根本没有读字符则失败,返回EOF。输入0、回车,则a='0',b='\n',都反送成功时i=ungetc(b,stdin)返回的是b,即'\n'=10(用getchar读取的'\n'的ASCII是10),同样j=48,'0'的ASCII是48。当输入回车、0、回车时,因为最后一个回车还留在输入缓冲区的行首,那么a接收到的回车就不能再被送回缓冲区,所以返回-1。
你要知道system的返回值,并非H1.EXE的返回值。
在DOS下,
system()只是做一个调用其他程序的工作,只要调用成功就返回0,不成功就返回-1。
它不能得到被调用的程序的执行结果。
要得到其他程序的执行的结果,要用spawn***()这个家族的函数。
如果在linux下面
如果你想得到那个返回值可以调用WEXITSTATUS(status),其中status是system函数的返回值。
如果你非常想获取他的返回值,就使用popen函数。它返回一个FILE*,就好像读写文件一样操作它就是了,不需要另外写文件读文件。