c语言输入中的空格与换行问题


一、getchar()的用法

       1.从缓冲区读走一个字符,相当于清除缓冲区。

       2.前面的scanf()在读取输入时会在缓冲区中留下一个字符’\n’(输入完s[i]的值后按回车键所致),所以如果不在此加一个getchar()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误。

       3.getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)。

      例如:

   

      这里就是取走回车字符。

二、空格问题

        c语言中输出字符串的函数有printf("%s") puts() fputs()等,字符串中可以是任意的字符,包括空格在内,无特殊处理,            char str[]="hello world" ;printf("%s\n", str );puts(str);fputs(str,stdin);

但在输入带有空格的字符串时,只能用gets()或fgets(),而不能用scanf("%s") ,因为scanf("%s")输入字符串时,遇到空格就结束了输入。而gets()函数是以回车为结束符的输入函数,可以输入带空格的字符串。

    


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM