【C语言】gets和puts还有scanf和printf搭配使用 puts/gets 和 scanf/printf 用法上的区...

gets puts \u548cprintf scanf\u7684\u533a\u522b

scanf\u4e0d\u80fd\u5b8c\u5168\u53d6\u4ee3gets
scanf\u91cc\u9762\u6211\u4eec\u65e0\u6cd5\u8f93\u5165\u7a7a\u683c\uff0c\u5f53\u4f60\u8f93\u5165\u7a7a\u683c\u65f6\uff0c\u7a7a\u683c\u540e\u9762\u7684\u5185\u5bb9\u5c31\u6ca1\u6709\u653e\u5230\u4f60\u6307\u5b9a\u7684\u53d8\u91cf\u91cc\u9762\u3002\u4f8b\u5982
char a[4];
scanf ("%s",a);//\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c%s\u662f\u8868\u793a\u5b57\u7b26\u4e32
for (i=0;i<=4;i++)
printf("%c",a[i]);
\u8fd0\u884c\u7684\u65f6\u5019\u4f60\u8f93\u5165i am\u8bd5\u8bd5\uff0c\u5b83\u5f97\u5230\u7684\u662fi\uff0c\u800c\u540e\u9762\u7684 \u7a7a\u683c\u548cam\u5c31\u6ca1\u6709\u4e86\u3002
\u6362\u53e5\u8bdd\u8bf4\uff0cscanf\u5f53\u9047\u5230\u7a7a\u683c\u65f6\uff0c\u5b83\u5c31\u628a\u5b83\u5f53\u505a'\0'\uff0c\u5c31\u662f\u81ea\u52a8\u505c\u6b62
\u5982\u679c\u4f60\u7528gets\u7684\u8bdd
char a[4];
a=gets();//\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u4e32\uff0c%s\u662f\u8868\u793a\u5b57\u7b26\u4e32
for (i=0;i<=4;i++)
printf("%c",a[i]);
\u4f60\u8fd8\u662f\u8f93\u5165i am\u7684\u5230\u7684\u5c31\u662fi am

\u800cprintf\u548cputs\u6ca1\u4ec0\u4e48\u533a\u522b

\u4e00\u3001\u8c03\u7528\u5f62\u5f0f\u4e0d\u540c
gets()\u51fd\u6570\u5b9e\u73b0\u5b57\u7b26\u4e32\u7684\u8f93\u5165\uff0c\u5176\u8c03\u7528\u5f62\u5f0f\u4e3a\uff1agets(\u5b57\u7b26\u6570\u7ec4)\uff1b
\u8c03\u7528puts()\u51fd\u6570\u5b9e\u73b0\u5b57\u7b26\u4e32\u7684\u8f93\u51fa\uff0c\u5176\u8c03\u7528\u5f62\u5f0f\u4e3a\uff1aputs(\u5b57\u7b26\u6570\u7ec4)\uff1b
\u4e8c\u3001\u683c\u5f0f
scanf\u8bed\u53e5\u7684\u4e00\u822c\u683c\u5f0f\u5982\u4e0b\uff1a
scanf("\u683c\u5f0f\u5b57\u7b26\u4e32", \u5730\u5740\uff0c\u2026);
printf\u8bed\u53e5\u7684\u4e00\u822c\u5f62\u5f0f\u5982\u4e0b\uff1a
printf( "\u683c\u5f0f\u5b57\u7b26\u4e32", \u8868\u8fbe\u5f0f, ... );
\u8be5\u8bed\u53e5\u5c06"\u8868\u8fbe\u5f0f"\u6309\u7167"\u683c\u5f0f\u5b57\u7b26\u4e32"\u7ed9\u5b9a\u7684\u683c\u5f0f\uff0c\u663e\u793a\u5728\u5c4f\u5e55\u4e0a\u3002"\u683c\u5f0f\u5b57\u7b26\u4e32"\u5305\u62ec\u6587\u672c\u5b57\u7b26\u3001\u8f6c\u4e49\u5b57\u7b26\u548c\u683c\u5f0f\u8bf4\u660e\u7b26\u3002

\u4e09\u3001\u7ed3\u675f\u65b9\u5f0f
\u4f7f\u7528scanf("%s", &s)\u51fd\u6570\u8f93\u5165\u5b57\u7b26\u4e32\u65f6\u5b58\u5728\u4e00\u4e2a\u95ee\u9898, \u5c31\u662f\u5982\u679c\u8f93\u5165\u4e86\u7a7a\u683c\u4f1a\u8ba4\u4e3a\u8f93\u5165\u5b57\u7b26\u4e32\u7ed3\u675f,\u7a7a\u683c\u540e\u7684\u5b57\u7b26\u5c06\u4f5c\u4e3a\u4e0b\u4e00\u4e2a\u8f93\u5165\u9879\u5904\u7406, \u4f46gets() \u51fd\u6570\u5c06\u63a5\u6536\u8f93\u5165\u7684\u6574\u4e2a\u5b57\u7b26\u4e32\u76f4\u5230\u56de\u8f66\u4e3a\u6b62\u3002 

#include<stdio.h>

int main()
{
char a[50]={0};
int l, h;

printf("输入长和高:");
scanf("%d%d", &l, &h);         

printf("输入字符串a=");
flushall();//清空缓冲区
gets(a);
puts(a);

return 0;  
}

这样就可以了。

非格式化输入,字符和字符串的输入会受到前次输入缓冲区的影响,因此在gets、getchar等接收字符输入前,应该清空缓冲区。



在程序中scanf和gets不能混合使用,如果一个程序中用scanf的话,一般不能再用gets,反之亦然,具体看下这个http://zhych16.blog.163.com/blog/static/118299049200992635217798/ 望采纳

  • C璇█绋嬪簭涓gets鍜宲uts鏄粈涔堟剰鎬
    绛旓細gets鍜scanf鐨勬濇剰鏈夌偣鍍忥紝鍙互鏄疭CANF鐨勫彉璞★紝瀹冧滑閮芥槸鎺ユ敹浠庨敭鐩樹笂杈撳叆鐨勫唴瀹癸紝鍙槸浜岃呬箣闂存帴鏀舵暟鎹椂鐨勮鍒欎笉鍚岋紝gets鏄敤鏉ヤ笓闂ㄦ帴鏀惰緭鍏ョ殑瀛楃涓叉暟缁勶紝鍙互璇存槸scanfr鍏蜂綋鍒嗙被銆俫ets鎺ユ敹瀛楃鏁扮粍鍚嶃佸瓧绗︽寚閽堟垨鑰呭瓧绗︽暟缁勫厓绱犵殑鍦板潃銆puts灏辨槸浠庢煇涓鍧寮濮嬶紝渚濇杈撳嚭瀛樺偍鍗曞厓涓殑瀛楃銆
  • c璇█ gets鍑芥暟 puts鍑芥暟
    绛旓細1.puts(瀛楃鏁扮粍)锛氬皢涓涓瓧绗︿覆锛堜互'\0'缁撴潫鐨勫瓧绗﹀簭鍒楋級杈撳嚭鍒扮粓绔傜敱浜巔rintf鍑芥暟鍙互杈撳嚭瀛楃涓诧紙%S锛夛紝鍥犳puts鍑芥暟涓嶅父鐢ㄣ傜敤puts鍑芥暟鍙互杈撳嚭鐨勫瓧绗︿覆鍙互鍖呭惈杞箟瀛楃锛佸湪杈撳嚭鏃跺皢瀛楃涓茬粨鏉熸爣蹇'\0'杞崲鎴'\n'锛屽嵆杈撳嚭瀹屽瓧绗︿覆鍚庢崲琛屻2.gets(瀛楃鏁扮粍)锛氫粠缁堢杈撳叆涓涓瓧绗︿覆鍒板瓧绗︽暟缁...
  • C璇█涓浣曠敤 gets(),put()
    绛旓細gets()銆puts()閮芥槸閽堝瀛楃涓茬被鍨嬪鐞嗙殑锛屼紶鍏ョ殑鍙傛暟鏄痗har *鍨嬶紝鎴朿har[]鍨 gets()鏄緭鍏ュ瓧绗︿覆鍑芥暟锛宲uts()鏄瓧绗︿覆杈撳嚭鍑芥暟 渚嬪锛歝har *a;gets(a);鎴栬咃細char a[10];gets(a);鐩稿綋浜庯細scanf("%s",a);杈撳嚭鍑芥暟:puts(a);鐩稿綋浜:printf("%s\n",a);...
  • c璇█涓,gets()鍜宲uts()鍑芥暟涓巊etchar()涓巔utchar()鍑芥暟鏈変綍鍖哄埆?_鐧 ...
    绛旓細puts()鍑芥暟鐢ㄦ潵鍚戞爣鍑嗚緭鍑鸿澶(灞忓箷)鍐欏瓧绗︿覆骞舵崲琛, 鍏惰皟鐢ㄦ牸寮忎负: puts(s);鍏朵腑s涓哄瓧绗︿覆鍙橀噺(瀛楃涓叉暟缁勫悕鎴栧瓧绗︿覆鎸囬拡),puts()鍑芥暟鐨勪綔鐢ㄤ笌璇璸rintf("%s\n", s)鐩稿悓銆gets()鍑芥暟鐢ㄦ潵浠庢爣鍑嗚緭鍏ヨ澶(閿洏)璇诲彇瀛楃涓鐩村埌鍥炶溅缁撴潫, 浣嗗洖杞︾涓嶅睘浜庤繖涓瓧绗︿覆銆傚叾璋冪敤鏍煎紡涓: gets(s);s涓哄瓧...
  • 銆怌璇█銆慻ets鍜宲uts杩樻湁scanf鍜宲rintf鎼厤浣跨敤
    绛旓細include<stdio.h>int main(){char a[50]={0};int l, h;printf("杈撳叆闀垮拰楂橈細");scanf("%d%d", &l, &h); printf("杈撳叆瀛楃涓瞐=");flushall();//娓呯┖缂撳啿鍖gets(a);puts(a);return 0; }杩欐牱灏卞彲浠ヤ簡銆傞潪鏍煎紡鍖栬緭鍏ワ紝瀛楃鍜屽瓧绗︿覆鐨勮緭鍏ヤ細鍙楀埌鍓嶆杈撳叆缂撳啿鍖虹殑褰卞搷锛屽洜姝ゅ湪get...
  • C璇█puts涓巊ets闂
    绛旓細puts(s);gets --> 浠庨敭鐩樿緭鍏ュ瓧绗︿覆锛屽寘鎷┖鏍笺傚锛歝har str[128];gets(str);printf --> 鏍煎紡鍖栬緭鍑哄埌灞忓箷銆傚彲浠ヤ互涓嶅悓鐨勬牸寮忔妸鍙傛暟杈撳嚭鍒板睆骞曘傚锛歝har s[]="china";printf("%s", s);//浠ュ瓧绗︿覆鐨勬牸寮忔妸s杈撳嚭鍒板睆骞 int a = 3;printf("%d", a);//浠ユ湁绗﹀彿鏁村瀷鐨勬牸寮忔妸a鐨勫...
  • puts/gets 鍜 scanf/printf 鐢ㄦ硶涓婄殑鍖哄埆...
    绛旓細涓銆佽皟鐢ㄥ舰寮忎笉鍚 gets()鍑芥暟瀹炵幇瀛楃涓茬殑杈撳叆锛屽叾璋冪敤褰㈠紡涓猴細gets(瀛楃鏁扮粍)锛涜皟鐢puts()鍑芥暟瀹炵幇瀛楃涓茬殑杈撳嚭锛屽叾璋冪敤褰㈠紡涓猴細puts(瀛楃鏁扮粍)锛涗簩銆佹牸寮 scanf璇彞鐨勪竴鑸牸寮忓涓嬶細scanf("鏍煎紡瀛楃涓", 鍦板潃锛?);printf璇彞鐨勪竴鑸舰寮忓涓嬶細printf( "鏍煎紡瀛楃涓", 琛ㄨ揪寮, ... );璇ヨ鍙ュ皢"...
  • c璇█涓gets()鍜宲uts()鏄庝箞鍒ゆ柇瀛楃涓茬粨鏉熺殑? '\0' '\n' 绌烘牸_鐧惧害...
    绛旓細\0'C 璇█涓0鏈夊嚑涓敤閫旓細1銆佸畠鏄竴涓暟瀛楅噺锛2銆佸湪瀛楃涓蹭腑瀹冩槸涓涓粨鏉熺锛'\0'锛夛紝瀹冩槸鍦板潃鎸囬拡鎵鍏佽鐨勬渶灏忓硷紱3銆佸湪閫昏緫琛ㄨ揪寮忎腑瀹冭〃绀哄亣 puts()鍑芥暟鐢ㄦ潵鍚戞爣鍑嗚緭鍑鸿澶囷紙灞忓箷锛夎緭鍑哄瓧绗︿覆骞舵崲琛岋紝鍏蜂綋涓猴細鎶婂瓧绗︿覆杈撳嚭鍒版爣鍑嗚緭鍑鸿澶囷紝灏'\0'杞崲涓哄洖杞︽崲琛屻
  • 璇烽棶C璇█涓殑杩欎簺璇彞gets,fgets,puts,sprintf,strcpy,strcat,strcm...
    绛旓細puts(string);getch();return 0;} 浠庢渚嬩腑鍙湅鍒皃uts杈撳嚭瀛楃涓叉椂瑕侀亣鍒'\0鈥欎篃灏辨槸瀛楃缁撴潫绗︽墠鍋滄銆傚涓婇潰鐨勭▼搴忓姞涓婁竴鍙 string[10]='\0';include <stdio.h> include <conio.h> int main(void){ int i;char string[20];for(i=0;i<10;i++)string='a';string[10]='\0';puts...
  • 鐢c璇█,缂栫▼瀹炵幇,浣跨敤瀛楃涓插嚱鏁puts(),杈撳叆涓や釜瀛楃涓,鍐嶄娇鐢gets...
    绛旓細puts鏄緭鍑哄嚱鏁帮紝gets鏄緭鍏ュ嚱鏁帮紝鐢╯trcat鍙互杩炶捣鏉ワ紝鍦╯tring涓
  • 扩展阅读:c++ using namespace ... as someone put it ... gets for ahead ... c# get set方法的使用 ... vs不能使用gets ... c#中getset方法怎么写 ... protues仿真 ... vs中gets不能用 ... c语言gets 的用法 举例 ...

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