scanf和gets有什么区别,为什么scanf和gets在一起,且scanf在前面就不能同时输出呢? scanf能不能与gets一起用,请说明原因,详细点哈。 我...

C\u8bed\u8a00\u4e2dscanf\u548cgets\u4e0d\u53ef\u4ee5\u540c\u65f6\u51fa\u73b0\u5728\u4e00\u6bb5\u7a0b\u5e8f\u91cc\u5427\uff1f\u4e3a\u4f55\u4e0b\u5217\u7a0b\u5e8f\u53ef\u4ee5\u540c\u65f6\u51fa\u73b0\u5462

\u53ef\u4ee5\u51fa\u73b0\u5728\u4e00\u6bb5\u7a0b\u5e8f\u4e2d\u3002
gets(str1); \u662f\u7528\u5b57\u7b26\u4e32\u7684\u65b9\u6cd5 \u8bfb\u6574\u4e00\u884c\u5b57\u7b26\uff0c\u5141\u8bb8\u5939\u7a7a\u767d\u3002
scanf("% \u662f \u6309\u683c\u5f0f \u8bfb\u5165\u6570\u636e\u3002
\u9700\u8981\u52062\u884c\u8f93\u5165\uff0c\u7b2c\u4e00\u884c\u7ed9 gets, \u7b2c2\u884c\u7ed9 scanf

gets\u51fd\u6570\u53ef\u4ee5\u4e00\u6b21\u63a5\u6536\u4e00\u884c\u8f93\u5165\u4e32\uff0c\u5176\u4e2d\u53ef\u4ee5\u6709\u7a7a\u683c,\u4e5f\u5c31\u662f\u8bf4\u7a7a\u683c\u53ef\u4ee5\u505a\u4e3a\u5b57\u7b26\u4e32\u7684\u4e00\u90e8\u5206\u8f93\u5165.
\u800cscanf\u51fd\u6570\u63a5\u6536\u7684\u5b57\u7b26\u4e32\u4e0d\u4f1a\u542b\u6709\u7a7a\u683c,\u5373\u9047\u5230\u5b57\u7a7a\u683c\u65f6,\u8ba4\u4e3a\u5b57\u7b26\u4e32\u8f93\u5165\u7ed3\u675f\uff0c\u4e5f\u5c31\u662f\u8bf4\u7a7a\u683c\u662fscanf\u9ed8\u8ba4\u7684\u7ed3\u675f\u7b26\u53f7\u3002

scanf\u548cgets\u4e0d\u80fd\u6df7\u5408\u4f7f\u7528\uff0c\u5982\u679c\u4e00\u4e2a\u7a0b\u5e8f\u4e2d\u7528scanf\u7684\u8bdd\uff0c\u4e00\u822c\u4e0d\u80fd\u518d\u7528gets\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002 1\uff1a...
2\uff1agets()\u8f93\u5165\u5b57\u7b26\u4e32\u65f6\uff0c\u53ef\u4ee5\u5305\u542b\u7a7a\u683c\u5728\u5185\u7684\u5b57\u7b26\uff0c\u5728\u56de\u8f66\u65f6\uff0c\u81ea\u52a8\u5c06\u5b57\u7b26\u4e32\u7ed3\u675f\u6807\u5fd7'\0'\u8d4b\u4e88\u5b57\u7b26\u6570\u7ec4\u6700\u540e\u4e00\u4e2a\u5143\u7d20\u3002scanf\u51fd\u6570\u4e0d\u80fd\u8f93\u5165\u5305\u542b\u7a7a\u683c\u5b57\u7b26\u7684\u5b57\u7b26\u4e32,\u4e5f\u5c31\u662f\u8bf4\u7a7a\u683c\u662fscanf\u9ed8\u8ba4\u7684\u7ed3\u675f\u7b26\u53f7\u3002
3\uff1a\u5982\u679c\u50cf\u4f60\u5728\u4f60\u7684\u7a0b\u5e8f\u4e2d\u63d0\u5230\u7684\u53ea\u628afor\u5faa\u73af\u4e2dgets\u6539\u4e3ascanf\u7684\u8bdd\uff0c\u5728\u540e\u9762\u8be5\u8f93\u5165\u7684\u65f6\u5019\u76f4\u63a5\u8df3\u8fc7\u7684\u539f\u56e0\u662f\uff0c\u5728\u7ed3\u675f\u524d\u4e00\u4e2ascanf\u8f93\u5165\u65f6\u8f93\u5165\u7684\u56de\u8f66\u88ab\u540e\u4e00\u4e2agets\u8f93\u5165\u65f6\u63a5\u53d7\uff0c\u4e5f\u5c31\u662f\u8bf4\u524d\u4e00\u4e2a\u5730\u65b9\u8f93\u5165\u7684\u201c\u6570\u636e+\u56de\u8f66\u201d\u5206\u522b\u88ab\u4e24\u4e2a\u5730\u65b9\u63a5\u53d7\u3002\u6b64\u79cd\u95ee\u9898\u4f1a\u51fa\u73b0\u5728gets\u548cscanf\u4ea4\u63a5\u5904\u3002\u53ea\u9700\u8981\u5728\u7a0b\u5e8f\u4e2d\u7edf\u4e00\u6539\u4e3ascanf\u548cgets\u5c31\u53ef\u4ee5\u4e86\u3002

scanf可以输入所有类型的数据,而gets只能输入字符串;当scanf在前面的时候输入数据和后面的字符串中间会用空格分开,这时gets就无法区分这个空格是否属于gets的输入。你在scanf后面加一个getchar();会解决问题的。

gets(字符数组名);作用:从终端输入一个字符串到字符数组
#include<stdio.h>
main()
{char str1[20];
gets(str1);//ges函数输入,以Enter结束。
puts(str1);
}

#include<stdio.h>
main()
{char str2[20];
scanf("%s",str2);//"%s"输入,以空格结束。
puts(str2);
}
eg:输入:how are you?
分析可得:若要处理的字符串包含空格字符,那么必须用gets函数获取这个字符串!
不知是你想要的答案不,开始我也没搞懂,多看书的结果!

  • gets()涓scanf鐨勫尯鍒
    绛旓細杩欎袱绉嶅嚱鏁扮殑鍖哄埆鍦ㄨ緭鍏ユ柟寮忋佸畨鍏ㄦу拰杩斿洖鍊銆1銆佽緭鍏ユ柟寮忥細gets()浼氱洿鎺ヨ鍙栬緭鍏ョ殑涓鏁磋鏂囧瓧锛屽寘鎷腑闂寸殑绌烘牸锛岀洿鍒版寜涓嬪洖杞﹂敭銆傝宻canf()鍒欎細鎸夌収鎸囧畾鐨勬牸寮忔潵璇诲彇杈撳叆锛屼腑闂寸殑绌烘牸鎴栨崲琛屼細鑷姩蹇界暐銆2銆佸畨鍏ㄦэ細gets()涓嶅お瀹夊叏锛屽洜涓哄畠涓嶄細妫鏌ヨ緭鍏ョ殑鍐呭鏄惁瓒呰繃浜嗛瀹氱殑绌洪棿锛岃繖鍙兘瀵艰嚧澶ч棶棰樸
  • c璇█涓gets鍑芥暟鍜屾槸scanf鍑芥暟鏈変粈涔堝尯鍒鍛??
    绛旓細涓銆佹寚浠d笉鍚 1銆乻canf锛氭槸C璇█涓殑涓涓緭鍏ュ嚱鏁般2銆乬ets锛氫粠鏍囧噯杈撳叆璁惧璇诲瓧绗︿覆鍑芥暟銆備簩銆璇诲彇鏂瑰紡涓嶅悓 1銆scanf锛氭槸鏍煎紡杈撳叆鍑芥暟锛屽嵆鎸夌敤鎴锋寚瀹氱殑鏍煎紡浠庨敭鐩樹笂鎶婃暟鎹緭鍏ュ埌鎸囧畾鐨勫彉閲忎箣涓2銆乬ets锛氬彲浠ユ棤闄愯鍙栵紝涓嶄細鍒ゆ柇涓婇檺锛屼互鍥炶溅缁撴潫璇诲彇锛屾墍浠ョ▼搴忓憳搴旇纭繚buffer鐨勭┖闂磋冻澶熷ぇ锛屼互渚垮湪鎵...
  • c璇█涓gets鍑芥暟鍜屾槸scanf鍑芥暟鏈変粈涔堝尯鍒鍛??
    绛旓細1 鎿嶄綔绫诲瀷涓嶅悓銆俫ets鍑芥暟浠呯敤浜庤鍏ュ瓧绗︿覆銆俿canf涓烘牸寮忓寲杈撳嚭鍑芥暟锛屽彲浠ヨ鍏ヤ换鎰廋璇█鍩虹绫诲瀷鐨勫彉閲忓硷紝鑰屼笉鏄粎闄愪簬瀛楃涓(char*)绫诲瀷銆2 鎴瀛楃涓嶅悓銆俫ets鍑芥暟鍥哄畾鐨勪互鎹㈣绗︿綔涓虹粨灏撅紝閬囧埌鎹㈣绗︽椂缁撴潫杈撳叆銆俿canf鍑芥暟榛樿浠ョ┖鐧藉嚱鏁扮粨灏撅紝鍚屾椂鍙互瀵规埅姝㈠嚱鏁拌繘琛屼慨鏀广3 瀵规埅姝㈠瓧绗﹀鐞嗕笉鍚屻俫ets...
  • GETS鍜宻canf鐨勫尯鍒濡備綍?
    绛旓細gets鍙兘杈撳叆瀛楃涓 scanf鍙互杈撳叆鍒殑绫诲瀷鐨勫笺俿canf杈撳叆瀛楃涓叉椂锛屼笉鑳借緭鍏ユ湁绌烘牸鐨勫瓧绗︿覆銆俫ets杈撳叆瀛楃涓叉椂锛屾槸浠ュ洖杞︾粨鏉燂紝鍙互鎺ユ敹绌烘牸銆
  • C璇█涓scanf()涓巊ets()鍑芥暟鐨勫尯鍒,鍝竴涓彲浠ヨ鍏ョ┖鏍煎晩?
    绛旓細1.scanf涓嶈兘鎺ュ彈绌烘牸銆佸埗琛ㄧTab銆佸洖杞︾瓑锛涘鏈熬鍥炶溅绗︾殑澶勭悊锛氭妸鍥炶溅绗︿繚鐣欏湪缂撳瓨涓俫ets鑳藉鎺ュ彈绌烘牸銆佸埗琛ㄧTab鍜屽洖杞︾瓑锛涘鏈熬鍥炶溅绗︾殑澶勭悊锛氭帴鏀跺洖杞︼紝浣嗘妸鍥炶溅鏇挎崲涓篭0銆2.scanf 锛氬綋閬囧埌鍥炶溅锛岀┖鏍煎拰tab閿細鑷姩鍦ㄥ瓧绗︿覆鍚庨潰娣诲姞'\0'锛屼絾鏄洖杞︼紝绌烘牸鍜宼ab閿粛浼氱暀鍦ㄨ緭鍏ョ殑缂撳啿鍖轰腑銆俫ets...
  • c璇█,scanf%s鍜実ets,涓嶆槸娌鍖哄埆鍚?
    绛旓細浠庡姛鑳戒笂鍙互鐪嬪嚭涓嶅悓涔嬪锛1 缁堟鏉′欢涓嶅悓銆gets鍙湁閬囧埌\n鏃舵墠浼氱粨鏉熻緭鍏ワ紝鑰scanf閬囧埌绌烘牸鎴栧埗琛ㄧ鏃讹紝涔熶細缁撴潫杈撳叆銆傛瘮濡傝緭鍏"test string\n"銆傜敤gets寰楀埌鐨勫瓧绗︿覆涓"test string", 浜岀敤scanf寰楀埌鐨勬槸"test"銆2 缁堟鍚庯紝瀵圭粓姝㈠瓧绗﹀鐞嗕笉鍚屻傛瘮濡傝緭鍏ヤ负"test\nabcd"銆傛墽琛実ets鍚庯紝\n涓嶄細鐣欏湪...
  • puts/gets 鍜 scanf/printf 鐢ㄦ硶涓鐨勫尯鍒...
    绛旓細涓銆佽皟鐢ㄥ舰寮涓嶅悓 gets()鍑芥暟瀹炵幇瀛楃涓茬殑杈撳叆锛屽叾璋冪敤褰㈠紡涓猴細gets(瀛楃鏁扮粍)锛涜皟鐢╬uts()鍑芥暟瀹炵幇瀛楃涓茬殑杈撳嚭锛屽叾璋冪敤褰㈠紡涓猴細puts(瀛楃鏁扮粍)锛涗簩銆佹牸寮 scanf璇彞鐨勪竴鑸牸寮忓涓嬶細scanf("鏍煎紡瀛楃涓", 鍦板潃锛屸);printf璇彞鐨勪竴鑸舰寮忓涓嬶細printf( "鏍煎紡瀛楃涓", 琛ㄨ揪寮, ... );璇ヨ鍙ュ皢"...
  • c璇█閲岄潰,鏈変簡GETS鍑芥暟,涓浠涔杩樿SCANF鍛
    绛旓細gets鍙兘杈撳叆涓涓瓧绗︿覆,涔熸槸灏卞瓧绗︽暟缁,鑰scanf鍙互鎺ュ彈涓涓瓧绗︿覆鍜屽崟涓瓧绗,姣攇ets鏇村己澶
  • c璇█scanf鍑芥暟鍜実ets()闂,濡傚浘
    绛旓細棣栧厛锛岃璇scanf鍑芥暟鍜実ets()鐨勫尯鍒銆1銆乻canf鍑芥暟閬囧埌绌烘牸鏃跺垯杈撳叆缁撴潫銆備篃灏辨槸璇翠綘杈撳叆鐨凥ow are you?锛屽叾涓涓涓崟璇嶇粰浜哹[20]锛屽墿涓嬬殑鍏ㄩ儴缁欎簡c[20]銆 2銆乬ets鍑芥暟鐨勪綔鐢ㄦ槸浠庣粓绔緭鍏ヤ竴涓瓧绗︿覆鍒板瓧绗︽暟缁勩
  • gets 鍜scanf鍖哄埆
    绛旓細杩欐槸鍥炶溅绗︽粸鐣欑紦鍐插尯鐨闂銆傜涓娆¤緭鍏**鐒跺悗鍥炶溅锛岀劧鍚庤緭鍏**鍐嶅洖杞︼紝瀹為檯涓scanf璇诲彇鐨勬槸**锛堝洖杞︾锛*杩4涓暟鎹gets鍑芥暟璇诲彇鏂瑰紡鏄鍙栦竴涓瓧绗︿覆骞跺湪鍚庨潰鍔犱笂'\0'锛岃繖娈电▼搴忕敤gets鏇挎崲搴旇涓嶄細鎴愬姛杩愯鎵嶅锛屽洜涓轰綘gets()鐨勫弬鏁颁笉鍚堟硶锛屽簲璇ユ槸涓涓湴鍧銆傚鏋滆鐢╣ets锛屽簲璇ュ彇娑堢浜屼釜for...
  • 扩展阅读:scanf gets getchar ... gets和scanf一起用 ... static int ... putchar ... 5个例子搞懂scanf ... c语言scanf用法举例 ... gets 和scanf s 的区别 ... scanf与gets连用 ... scarves scarfs ...

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