getchar()和scanf()函数 scanf与get char的区别

Scanf\uff08 \uff09\u3001getchar\uff08 \uff09\u4e0egets\uff08 \uff09\u51fd\u6570\u4f5c\u4e3a\u8f93\u5165\u51fd\u6570\u5b83\u4eec\u533a\u522b\u662f\u4ec0\u4e48\uff1f

scanf();
\u8f93\u5165\u5f62\u5f0f\uff1ascanf("%d",&a); scanf("%s",a)(\u6216scanf("%s",&a)\uff0c\u4e0d\u6b63\u89c4)\uff1b
\u4e00\u4e00\u5bf9\u5e94\uff1a%d int \uff1b%f float \uff1b%lf double \uff1b%ld long \uff1b%I64d __int64 \uff1b%c char \uff1b%s char [] \uff1b
\u8fd4\u56de\u503c\u662f\uff0c\u8f93\u5165n\u4e2a\u6570\u636e\uff0c\u5219\u8fd4\u56den\uff0c\u65e0\u8f93\u5165\uff0c\u5219\u8fd4\u56de-1\uff0cEOF\uff08\u5373end of file\uff09\uff0c\u662f\u4e00\u4e2a\u5e38\u91cf-1\uff08\u53ef\u7528-1\u4ee3\uff09\uff0c\u64cd\u4f5c\u662f\u7528Ctrl+Z\u3002
\u4e00\u6761\u8bed\u53e5\u53ef\u8f93\u5165\u591a\u4e2a\u6570\u636e\u3002
\u9ed8\u8ba4\u4ee5\u7a7a\u683c\u6765\u8df3\u5230\u4e0b\u4e00\u4e2a\u8f93\u5165\u53d8\u91cf\uff0c\u82e5\u5b8c\u6210\u4e86\u672c\u6b21\u8c03\u7528\u65f6\u7528\u6237\u672c\u6b21\u89c4\u5b9a\u7684\u8f93\u5165\u91cf\uff0c\u53ef\u4ee5\u7f13\u51b2\u8d77\u6765\uff0c\u7ee7\u7eed\u8f93\u5165\u4e0b\u4e00\u6b21\u8c03\u7528\u8be5\u51fd\u6570\u65f6\u7684\u6570\u636e\uff0c\u53d1\u51fa\u6267\u884c\u6307\u4ee4\u540e\u505a\u4e00\u8d77\u5904\u7406\u3002\u8be5\u51fd\u6570\u4e0d\u63a5\u6536\u7a7a\u683c\uff0c\u591a\u4e2a\u7a7a\u683c\u7b49\u540c\u4e00\u4e2a\u7a7a\u683c\u3002\u53ef\u4ee5\u5728\u4e00\u6b21\u89c4\u5b9a\u7684\u53d8\u91cf\u4e4b\u95f4\u52a0\u4e0a\u5176\u4ed6\u7684\u7b26\u53f7\u6765\u81ea\u5b9a\u4e49\u8df3\u8f6c\u6307\u4ee4\u3002
\u82e5\u5b8c\u6210\u4e86\u672c\u6b21\u89c4\u5b9a\u7684\u8f93\u5165\u91cf\uff0c\u56de\u8f66\u8868\u793a\u6267\u884c\u672c\u6b21\u8981\u7684\u64cd\u4f5c\uff1b\u82e5\u672a\u5b8c\u6210\u672c\u6b21\u89c4\u5b9a\u7684\u8f93\u5165\u91cf\uff0c\u5219\u4f5c\u7528\u540c\u4e8e\u7a7a\u683c\uff0c\u662f\u8df3\u5230\u4e0b\u4e00\u4e2a\u8f93\u5165\u53d8\u91cf\u3002\u8be5\u51fd\u6570\u4e5f\u4e0d\u63a5\u6536\u56de\u8f66\uff0c\u591a\u4e2a\u56de\u8f66\u7b49\u540c\u4e00\u4e2a\u56de\u8f66\u3002
\u6545\u800c\u8981\u6ce8\u610f\u8be5\u51fd\u6570\u53ea\u80fd\u6b63\u5e38\u63a5\u6536\u65e0\u7a7a\u683c\u548c\u5b57\u7b26\u4e32\uff0c\u5f53\u7136\u542b\u6709\u56de\u8f66\u7b26\u7684\u5b57\u7b26\u4e32\u4e5f\u662f\u4e0d\u884c\u7684\u3002
gets();
\u8f93\u5165\u5f62\u5f0f\uff1agets(a);\uff08char a[ ]\uff09\uff1b
\u8f93\u5165\u7684\u5bf9\u8c61\u662f\u5b57\u7b26\u4e32\uff0c\u4f1a\u628a\u4e00\u5207\u80fd\u63a5\u6536\u8fdb\u6765\u7684\u5b57\u7b26\u90fd\u63a5\u6536\u8fdb\u6765\uff08\u9664\u4e86\u56de\u8f66\uff09\uff0c\u5982\u4e0b\u9762\u4ee3\u78011\u4e2dscanf()\u540e\u9762\u7684\u7a7a\u683c\u548c\u56de\u8f66\uff0c\u4ee5\u56de\u8f66\u8868\u793a\u7ed3\u675f\u8be5\u5b57\u7b26\u4e32\u7684\u8f93\u5165\u7ed3\u675f\u3002\u5e38\u4ee5\u9632\u5e72\u6270\u4ee5\u4ee3\u78012\u7684\u5f62\u5f0f\u548cscanf();\u642d\u914d\u3002\u4f46\u662f\u6ce8\u610f\u4e00\u5207\u80fd\u63a5\u6536\u662f\u6307\u4e0a\u4e00\u4e2a\u8f93\u5165\u53d8\u91cf\u4e0d\u8981\u7684\u5b57\u7b26\uff0c\u5982\u4e0a\u9762\u7684\u7a7a\u683c\u548c\u56de\u8f66\uff0c\u4f46\u662f\u5f62\u5982\u4ee3\u78013\uff0c\u4e0a\u4e00\u4e2a\u56de\u8f66\u662f\u4e0a\u4e00\u4e2a\u5b57\u7b26\u4e32\u5fc5\u8981\u7684\u7ed3\u5c3e\u7b26\uff0c\u4e0d\u80fd\u7ed9\u4e0b\u4e00\u4e2a\u5b57\u7b26\u63a5\u6536\u4e86\u3002
getchar();
\u8f93\u5165\u5b57\u7b26\u7684\u51fd\u6570\uff0c\u4e00\u6b21\u8f93\u5165\u5355\u4e2a\u5b57\u7b26\uff0c\u53ef\u4ee5\u63a5\u6536\u4efb\u610f\u5f62\u5f0f\u7684\u5b57\u7b26\uff0c\u53ef\u4ee5\u628a\u5b83\u4ed8\u7ed9\u4e00\u4e2a\u5b57\u7b26\u53d8\u91cf\uff0c\u4e5f\u53ef\u4ee5\u4e0d\u8981\u63a5\u6536\u5668\u3002\u82e5\u8981\u7528\u6765\u8f93\u5165\u5b57\u7b26\u4e32\uff0c\u5219\u53ef\u4ee5\u7528EOF\u6765\u7ed3\u5c3e\uff0c\u5f62\u5f0f\u662fwhile((c=getchar())!=EOF)
\u91c7\u7eb3\u54e6\uff01

scanf\u662f\u6309\u7167\u8bbe\u5b9a\u7684\u8f93\u5165\u683c\u5f0f\u8f93\u5165\u76f8\u5e94\u7684\u53d8\u91cf\u6570\u636e\uff0c\u4e00\u6b21\u53ef\u4ee5\u8f93\u5165\u591a\u4e2a\u53d8\u91cf\uff0c\u5982
int d;float f;char str[20];scanf("%d%f%s",d,f,str);getchar()\u53ea\u80fd\u8f93\u5165\u5b57\u7b26\u578b\uff0c\u800c\u4e14\u53ea\u80fd\u63a5\u6536\u5355\u4e2a\u5b57\u7b26\uff0c\u8f93\u5165\u65f6\u9047\u56de\u8f66\u952e\u624d\u4ece\u7f13\u51b2\u533a\u4f9d\u6b21\u63d0\u53d6\u5b57\u7b26\uff0c\u5982
char ch;ch=getchar();\u8f93\u5165abc(\u56de\u8f66)\u6700\u7ec8ch=a\uff0c\u7528\u5728\u5faa\u73af\u8f93\u5165\u65f6\u4e5f\u8981\u7b49\u6709\u56de\u8f66\u952e\u65f6\u624d\u63a5\u6536\u3002

楼主你好,getchar()会读入换行符的。
改成下面这样就对了:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 8
void main()
{
int i,m;
char g[N];
printf("m=");
scanf("%d",&m);
//printf("ok");
getchar();
printf("please input vexs(顶点名称):\n");
for(i=0;i<N;i++)
{
g[i]=getchar();
getchar();//吞掉换行符
printf("%c\n",g[i]);
}
printf("byebye\n");

}

1.scanf("%d\n",&m); ===》改成scanf("%d",&m);

,"%d\n"中的\n会让scanf读到非空白字符为止,而它可能需要读到下一行才能找到这个非空白字符。这种情况下,去掉\n仅仅使用"%d"即可。

2.在 使用getchar函数 之前,最好使用一个清除 缓冲区的函数。
这样可以把 上一次遗留的给 清空。

fflush(stdin)的作用就是清空输入缓冲区。

  • getchar()涓gets()鐨勫尯鍒?
    绛旓細瑕佷粠閿洏璇诲叆鍚湁绌烘牸瀛楃鐨勫瓧绗︿覆锛屽簲璇ョ敤gets()鍑芥暟銆俫etc()涓getchar()璇彞閮芥槸璇诲彇鍗曚釜瀛楃鐨勶紝涓嶈兘鐢ㄤ簬瀛楃涓茬殑璇诲叆銆傝実ets()涓巗canf()璇彞閮藉彲浠ヨ鍙栧瓧绗︿覆锛屼絾鏄尯鍒湪浜庯細scanf()璇彞涓嶈兘璇荤┖鏍硷紝涓閬囧埌绌烘牸鍒欒嚜鍔ㄧ粨鏉燂紝鐢ㄢ滅┖鏍尖濆尯鍒笉鍚岀殑瀛楃涓诧紱瑕佽鍚湁绌烘牸鐨勫瓧绗︿覆鍒欏彧鏈塯ets()鍑芥暟銆
  • c璇█涓,scanf鍜実etchar鏈変綍鍖哄埆?
    绛旓細getchar鍙兘鎺ユ敹涓涓瓧绗︼紝璇ュ瓧绗﹀彲璧嬬粰瀛楃鍙橀噺銆佹暣鍨嬪彉閲忔垨浣滀负琛ㄨ揪寮忕殑涓閮ㄥ垎銆scanf鍙互杈撳叆澶氫釜瀛楃鍜屽绉嶄笉鍚岀被鍨嬪彉閲忕殑鍊硷紝浣嗘槸瀹冧笉鑳借緭鍏ョ┖鏍笺佸洖杞﹀拰璺虫牸閿,getchar鍙互
  • c璇█涓悓涓鍑芥暟getchar涓巗canf鐨勮繍鐢,缁撴灉鍗村嚭鐜颁笉鍚,杩欐槸涓轰粈涔?鍏 ...
    绛旓細getchar鑾峰彇 鐨勬槸瀛楃锛岃屼笉鏄瓧绗︿覆銆傚嚱鏁 scanf() 鏄粠鏍囧噯杈撳叆娴乻tdio (鏍囧噯杈撳叆璁惧锛屼竴鑸槸閿洏)涓鍐呭鐨勯氱敤瀛愮▼搴忥紝鍙互璇存槑鐨勬牸寮忚鍏ュ涓瓧绗︼紝骞朵繚瀛樺湪瀵瑰簲鍦板潃鐨勫彉閲忎腑銆傚叾璋冪敤褰㈠紡涓: scanf("<鏍煎紡璇存槑瀛楃涓>"锛<鍙橀噺鍦板潃>);鍙橀噺鍦板潃瑕佹眰鏈夋晥锛屽苟涓斾笌鏍煎紡璇存槑鐨勬搴忎竴鑷淬
  • c璇█涓scanf 鍜getchar鍖哄埆
    绛旓細鍓嶄袱涓棶棰樿緭鍑虹粨鏋滄槸涓鏍风殑銆傚綋鐒讹紝ch=getchar()锛涘簲鏀逛负ch[i]=getchar();甯︾┖鏍兼椂锛岃鎶婃帶鍒跺惊鐜彉閲忔敼涓20锛涘悗闈㈢殑闂搴旇鏄scanf锛堚%s鈥濓紝str锛夛紱涓巊ets锛坰tr锛夛紱鐨勫尯鍒紝姝ゆ椂锛宻canf涓┖鏍笺佸洖杞︺佽烦鏍奸兘琛ㄧず缁撴潫锛岃実ets涓负涓涓瓧绗 ...
  • 涓轰粈涔堣緭鍏ュ瓧绗﹀瀷瀛楁瘝瑕佸悓鏃惰繍鐢scanf鍜実etchar鎵嶈兘鎴愬姛?
    绛旓細鍥犱负scanf("%c",&ch);鍙帴鏀朵竴涓瓧绗︼紝浼氭妸杈撳叆鐨'\n'鐣欏湪杈撳叆缂撳啿鍖猴紱鑰'\n'涔熸槸瀛楃锛屽悗闈㈢殑杈撳叆璇彞浼氭妸瀹冩帴鏀惰屾敹涓嶅埌浣犺緭鍏ョ殑鏈夌敤瀛楃锛屾墍浠ヤ細鍑洪敊銆傚啓鎴恠canf("%c",&ch);getchar();鍚巊etchar();浼氭妸閬楃暀鍦ㄧ紦鍐插尯涓殑閭d釜'\n'鎺ユ敹鎺夛紝灏变笉浼氬嚭閿欎簡銆備絾浣爏canf("%c",&ch);ch...
  • c璇█涓 scanf鍚庨潰涓瀹氳璺熶釜 getchar鍚冨洖杞﹀悧?
    绛旓細char ch;fflush(stdin); //涓嶇缂撳瓨涓湁娌℃湁鏁版嵁锛屽己琛屾竻闄h=getchar(); //杩欓噷浼氱瓑寰呯敤鎴疯緭鍏ヤ竴涓瓧绗︿簩銆佸墠闈㈡湁璇绘暟鎹搷浣滐紝鐜板湪瑕佹墽琛岃瀛楃鎿嶄綔锛屽垯鍙敤getchar()鏉ュ悆鎺夊墠闈㈢殑鍥炶溅纭 int i;char ch;scanf("%d", &i ); //璇讳竴涓暣鏁帮紝鍥炶溅纭getchar(); //鍏堝悆鎺夊洖杞︾‘璁ょ锛岃繖...
  • getchar鐢ㄦ硶
    绛旓細3銆getchar()鏄湪杈撳叆缂撳啿鍖洪『搴忚鍏ヤ竴涓瓧绗(鍖呮嫭绌烘牸銆佸洖杞﹀拰Tab)閿欏湪getchar() 鏄粠閿洏璇诲彇涓涓瓧绗︽斁鍏ョ紦鍐插尯锛岀劧鍚庡湪鍙栧嚭鏉ワ紝浣犲湪杈撳叆鏌愪釜鏁版垨鑰呭瓧绗﹀悗鏁插洖杞﹀叾瀹炵紦鍐插尯涔熸帴鍙椾簡浣犵殑鍥炶溅浜嗐傚彲浠ヨ繖涔堜慨鏀癸細char ch;int key;printf("please input key");scanf("%d",&key);fflush(stdin);pr...
  • C璇█闂,杈撳叆涓涓插瓧绗︽椂,scanf鍜実etchar鏄垎鍒鍒颁粈涔堢粨鏉?
    绛旓細getchar 涓娆″彧璇诲彇涓涓瓧绗︼紝涓嶈兘鏄鍙栧瓧绗︿覆 鐩存帴浠庨敭鐩樿鍙栵紝杈撳叆涓涓紝瀹冨氨鎺ユ敹涓涓備笉绠℃槸鍥炶溅锛岃繕鏄┖鏍硷紝瀹冪粺缁熻鍙栥scanf 鍙互涓娆¤鍙栦竴涓瓧绗︿覆鎴栧涓瓧绗︿覆 瀹冩槸璇诲彇杈撳叆缂撳啿鍖猴紝褰撹緭鍏ュ洖杞﹀悗 鎵嶅紑濮嬫墽琛岃鍙 濡傛灉鏄竴娆¤鍏ュ涓瓧绗︿覆锛岃鍙栧瓧绗︿覆鐨勭粨鏉 鍜岃鍏ユ牸寮忔湁鍏崇郴 渚嬪锛歴canf("...
  • c璇█ scanf getchar杩炵敤鐨勯棶棰
    绛旓細1閭d釜鍥炶溅绗︽病鏈変即闅忕潃scanf璇彞鐨勭粨鏉熻屾秷澶憋紱2scanf璁や负鍥炶溅绗︼紝绌烘牸绗︽槸鍒嗛殧绗︼紝浼氳嚜鍔ㄨ烦杩囷紝鍥犺屼笉浼氬奖鍝嶄笅涓涓猻canf銆3getchar鏄鍏ヤ竴涓瓧绗︼紝涓嶇鏄笉鏄垎闅旂锛岄兘涓嶄細璺宠繃銆
  • C璇█閲屽瓧绗﹁緭鍏ヤ娇鐢scanf鍜実etchar鏈変粈涔堝尯鍒?瀛楃涓插憿?
    绛旓細scanf()鏄疌璇█涓殑涓涓氱敤杈撳叆鍑芥暟锛屾牴鎹帶鍒剁锛屽彲浠ヨ緭鍏ユ暣鏁般佹诞鐐规暟銆佸瓧绗︿覆绛夛紝杩樺彲浠ュ悓鏃惰緭鍏ュ涓彉閲忋傝getchar鏄竴涓緭鍏ュ嚱鏁般傚畠浠庢爣鍑嗚緭鍏ラ噷璇诲彇涓涓瓧绗︼紝鍗矨SCII鍚楋紝鑰屼笉鑳借鍙栧叾浠栫被鍨嬬殑鏁版嵁
  • 扩展阅读:scanf gets getchar ... distribute ... catcher in the rye ... scanf ... putchar ... scalar翻译 ... scattered ... printf ... getchar用法例子简单例子 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网