gets()和scanf()混用问题 C语言中gets()和scanf的保存变值???

\u6c42\u52a9\uff1agets()\u548cscanf()\u51fd\u6570\u533a\u522b\uff0c\u8be6\u7ec6\uff1f

gets()\u662f\u8bfb\u5165\u5b57\u7b26\u4e32
\u5982gets(str)\u8868\u793a\u8bfb\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\u7ed9str\u4e2d
scanf()\u662f\u683c\u5f0f\u8f93\u5165

\u5982scanf("%d",&a)\u662f\u6307\u8bfb\u5165\u4e00\u4e2aint\u7ed9a\uff0c\u5176\u4e2d%d\u662fint\u7684\u683c\u5f0f\u7b26

\u9996\u5148\uff0c\u6211\u4eec\u8981\u77e5\u9053\uff0c\u6211\u4eec\u4ece\u952e\u76d8\u91cc\u8f93\u5165\u7684\u6570\u636e\u662f\u5148\u4fdd\u5b58\u5728\u8f93\u5165\u6d41\u4e2d\uff0c\u7136\u540e\u624d\u88abscanf\u6216\u8005gets\u51fd\u6570\u8bfb\u5165\u5230\u5185\u5b58\u4e2d\u3002\u8fd9\u91ccscanf\u51fd\u6570\u548cgets/getchar\u5728\u8bfb\u5165\u6570\u636e\u65f6\u662f\u6709\u533a\u522b\u7684\uff0cget\u51fd\u6570\u4f1a\u8bfb\u5165\u8f93\u5165\u6d41\u91cc\u7684\u56de\u8f66\uff0c\u800cscanf\u51fd\u6570\u4f1a\u81ea\u52a8\u5ffd\u7565\u56de\u8f66\u3002\u6240\u4ee5\u4e00\u822c\u4e0d\u8981\u5c06get\u548cscanf\u6df7\u7528\u3002
\u4f8b\u5982\uff1a\u4f60\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\u52a0\u56de\u8f66
string\n
\u5148\u7528scanf\u8bfb\u5165\u83b7\u5f97string\u5b57\u7b26\u4e32
\u518d\u7528get\u51fd\u6570\u65f6\u8bfb\u5165\u7684\u662f\u56de\u8f66\u5b57\u7b26

scanf(..);输入字符按下回车键后,gets()函数会把回车键当做输入的字符。所以在执行gets()前要把回车过滤掉!!


改正后代码:

#include<stdio.h>

main()

{

    char a1[5] = "",a2[5] = "",a3[5] = "",a4[5] = "";

scanf("%s%s",a1,a2);

printf("a1=%s
",a1);

printf("a2=%s
",a2);

printf("a3=%s
",a3);

printf("a4=%s
",a4);

printf("请输入a3:");

getchar();    //过滤回车

gets(a3);printf("a1=%s
",a1);

printf("a2=%s
",a2);

printf("a3=%s
",a3);

printf("a4=%s
",a4);


printf("请输入a4:");

gets(a4);

/*puts(a1);

puts(a2);

puts(a3);

puts(a4);*/

printf("a1=%s
",a1);

printf("a2=%s
",a2);

printf("a3=%s
",a3);

printf("a4=%s
",a4);

}




  • C璇█涓scanf()涓巊ets()鍑芥暟鐨勫尯鍒,鍝竴涓彲浠ヨ鍏ョ┖鏍煎晩?
    绛旓細2.scanf 锛氬綋閬囧埌鍥炶溅锛岀┖鏍煎拰tab閿細鑷姩鍦ㄥ瓧绗︿覆鍚庨潰娣诲姞'\0'锛屼絾鏄洖杞︼紝绌烘牸鍜宼ab閿粛浼氱暀鍦ㄨ緭鍏ョ殑缂撳啿鍖轰腑銆gets锛氬彲鎺ュ彈鍥炶溅閿箣鍓嶈緭鍏ョ殑鎵鏈夊瓧绗︼紝骞剁敤'\n'鏇夸唬 '\0'.鍥炶溅閿笉浼氱暀鍦ㄨ緭鍏ョ紦鍐插尯涓 3.gets浠庢爣鍑嗚緭鍏ヨ澶囪瀛楃涓插嚱鏁帮紝鍏跺彲浠ユ棤闄愯鍙栵紝涓嶄細鍒ゆ柇涓婇檺锛屼互鍥炶溅缁撴潫璇诲彇锛屾墍浠...
  • c璇█scanf鍑芥暟鍜gets()闂,濡傚浘
    绛旓細棣栧厛锛岃璇scanf鍑芥暟鍜gets()鐨勫尯鍒1銆乻canf鍑芥暟閬囧埌绌烘牸鏃跺垯杈撳叆缁撴潫銆備篃灏辨槸璇翠綘杈撳叆鐨凥ow are you?锛屽叾涓涓涓崟璇嶇粰浜哹[20]锛屽墿涓嬬殑鍏ㄩ儴缁欎簡c[20]銆 2銆乬ets鍑芥暟鐨勪綔鐢ㄦ槸浠庣粓绔緭鍏ヤ竴涓瓧绗︿覆鍒板瓧绗︽暟缁勩
  • C璇█gets()闂
    绛旓細鍥犱负浣犲湪浣跨敤gets涔嬪墠杩樹娇鐢ㄨ繃鍒殑璇诲叆鍑芥暟(鎴栧畯)锛屾湁鐨勬槸涓嶄細鎶婃湯灏剧殑鎹㈣璇诲彇鎺夌殑锛屽氨浼氱暀鍦ㄧ紦鍐插尯锛屽綋浣犺皟鐢╣ets鏃讹紝鎶婁笂涓娆$殑鎹㈣瀛楃缁欒鍙栦簡锛屾墍浠ュ氨鍍忕洿鎺ヨ烦杩囦簡銆傛敼鍠勭殑鏂规硶鏄负gets鍑芥暟涓婁竴鍙ュ姞涓奼etchar();鐢ㄤ簬鍚告敹鍥炶溅銆傛垨鏄姞fflush(stdin);鍒锋柊缂撳啿鍖恒
  • c璇█涓,杈撳叆涓涓瓧绗︿覆浣跨敤scanf(鈥%s鈥)鍜実ets()鏈変粈涔堝尯鍒
    绛旓細鍏跺疄鐢scanf("%s",);鍜gets();鏈川涓婃病鏈変粈涔堝尯鍒紝閮芥槸灏嗗瓧绗︽暟鎹緭鍏ュ埌鍒跺畾鐨勫唴瀛樺崟鍏冧腑銆傚亣璁惧畾涔夋湁瀛楃鏁扮粍锛圕璇█鎶婂瓧绗︿覆鎸夊瓧绗︽暟缁勫鐞嗭級str[30]锛岄偅涔堟垜浠悜閲岄潰杈撳叆瀛楃灏卞彲浠ヤ负锛歴canf("%s",str);gets(str);浠栦滑閮藉彲浠ヨ繖鏍疯緭鍑猴細printf("%s",str);鎴栬卲uts(str);娉ㄦ剰锛(1)浣跨敤scanf...
  • gets鍑芥暟鏈夊嵄闄,閭d箞璇彞gets(s);鎬庝箞鐢scanf鍑芥暟鏀瑰啓鍛?
    绛旓細scanf鍜gets鑾峰彇瀛楃涓叉椂鐨勫尯鍒 鍦–璇█涓紝鑳芥瀯鑾峰彇瀛楃涓茬殑鍑芥暟鑷冲皯鏈変袱涓細1.scanf()鎵鍦 澶存枃浠 锛歴tdio.h 璇硶锛歴canf("鏍煎紡鎺у埗瀛楃涓",鍙橀噺鍦板潃鍒楄〃);鎺ュ彈瀛楃涓叉椂锛歴canf("%s",瀛楃鏁扮粍鍚 鎴栨寚閽);2.gets()鎵鍦 澶存枃浠 锛歴tdio.h 璇硶锛歡ets(瀛楃鏁扮粍鍚嶆垨鎸囬拡);涓よ呭湪鎺ュ彈瀛楃涓叉椂锛...
  • scanf(&% s,& a,& b)鏄纭殑鐢ㄦ硶鍚?
    绛旓細瀵逛簬瀛楃涓叉暟缁勬垨瀛楃涓叉寚閽堝彉閲忥紝鐢变簬鏁扮粍鍚嶅彲浠ヨ浆鎹负鏁扮粍鍜屾寚閽堝彉閲忓悕鏈韩灏辨槸鍦板潃锛屽洜姝や娇鐢scanf()鍑芥暟鏃讹紝涓嶉渶瑕佸湪瀹冧滑鍓嶉潰鍔犱笂"&"鎿嶄綔绗︺傛墍浠モ淎.scanf("%s%s",&a,&b)鈥濅腑锛屽彉閲廰銆乥澶氭惡甯︿簡鈥&鈥濇搷浣滅锛屾槸閿欒鐨勩傝屽浜gets()鍑芥暟鐨勪娇鐢紝鍏朵腑鍙傛暟涓哄瓧绗︿覆鍙橀噺锛堝瓧绗︿覆鏁扮粍鍚嶆垨瀛楃涓...
  • C璇█gets 鍜 scanf
    绛旓細鎴戝繊涓嶄綇璇翠竴涓嬶紝甯屾湜宸茬粡缁欏嚭绛旀鐨勫悓瀛︿滑涓嶈浠嬫剰銆scanf("%s%f",name[i],&score);濡傛灉浣犺緭鍏 鈥渁bc 1234鈥濓紙娉ㄦ剰 寮曞彿涓嶆槸杈撳叆鐨勬暟鎹紝鍙槸涓轰簡鏂逛究闃呰锛夎繖涓椂鍊 name[i]浼氳鍙栨暟鎹殑锛屼絾鏄鍙栫殑鏁版嵁閬囧埌绌烘牸灏辫涓鸿鍙栫粨鏉熴傝繖鏍峰墿浣欎笅鐨勬暟鎹氨鏄 涓涓┖鏍煎鍔1234.褰搒core寮濮嬭鍙栫殑鏃跺...
  • C璇█涓敤scanf()鍜fscanf()璇诲彇绌烘牸
    绛旓細scanf鍜宖scanf鍑芥暟鏄笉鑳借绌烘牸鍜屽洖杞︾鐨勶紝鍦ㄨ鍙栫殑鏃跺欎細鑷姩杩囨护鎺夎繖浜涘垎闅旂銆傝鎯宠绌烘牸锛屽繀椤荤敤gets鍑芥暟锛屽湪string.h涓湁瀹氫箟锛岄渶瑕佸疄鐜癷nclude瀹冦俫ets鐨勭敤娉曪細char a[10];gets(a);c++涓嬩篃鍙互鐢╣etline鍑芥暟锛屼笉杩囧缓璁甐C鐢ㄦ埛涓嶈鐢紝鍥犱负寰蒋鐨凜++缂栬瘧鍣ㄦ湁涓粡鍏哥殑getline bug.鍦ㄧ紦鍐茬殑鏃跺欎細澶...
  • C璇█涓叧浜gets涓巗canf鐨勯棶棰(鏈変緥)
    绛旓細鐢 while(getchar()!='\n');灏辨槸璁ゞetchar鍚炴帀scanf缂撳瓨涓殑瀛楃锛岀洿鍒拌緭鍏ヤ竴涓洖杞︾涓烘銆備綘瑕佺煡閬搒canf鐨勮繍琛屾満鍒讹紝scanf鎵弿鐨勬椂鍊欙紝鍏堟妸瀛楃鏀惧湪缂撳啿鍖猴紝绛夊緟鐢ㄦ埛鎸夊洖杞﹀悗灏嗙紦瀛樼殑鍐呭浼犻佸埌绋嬪簭锛屽鏋滀綘鏄 %d 鑰屼綘鍗磋緭鍏ヤ簡涓涓瓧姣嶏紝 杩欎釜鏃跺 scanf涓嶄細璺宠繃瀛楃锛屼細鍙嶅鎶婁綘杈撳叆鐨勫瓧绗︿紶缁%d...
  • 绋嬪簭杩炵画鐢ㄤ咯涓gets(),涓棿闇瑕佸姞scanf("%*c");?
    绛旓細5
  • 扩展阅读:putchar ... int ... static int ... 5个例子搞懂scanf ... scanf gets getchar ... char ... sst ... sizeof ... strcpy ...

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