※ 引述《ken81270 (ken81270)》之銘言:
: 個人是個新手
: 看不出來這個程式要改哪一個地方
: #include<stdio.h>
: main()
: {
: int a,b,c;
: for(a=1,b=1,(c=getchar());(c=getchar())!=EOF;a=a+1){
: if(b==1){
: printf("%04d",a);
: b=0;
: }
: putchar(c);
: if(c=='\n'){
: b=1;
: }
: }
: }
: 他執行跑出
: a
: 0001
: b
: 0002b
: c
: 0004c
: d
: 0004d
: 但實際上應該要跑出
: a
: 0001 a
: b
: 0002 b
: c
: 0003 c
同理當你輸入 apple [enter] 時, 要輸出 0001 apple 的字樣,
所以我覺得你應該不是想寫這種只能處理字元的程式, 一來要依
據換行字元來轉移狀態, 二來程式也會有許多條件分支, 讀起來
更難懂.
讀入字串可以使用 :
char line[ 100 ];
scanf( "%s", line );
每次迴圈都讀一次, 就能得到每一行的字串(因為是以enter結束)
另外再設一個計數器去數行數, 當 scanf 回傳值為零時, 表示輸
入失敗, 迴圈停止, 最後的程式碼長這樣:
scanf 版: http://codepad.org/6pmFfHs8
gets 版: http://codepad.org/IKGJDT75
: 才對不知道要改哪?
在你還沒了解題目的要求前千萬別動手寫程式, 程式碼就像一篇
文章, 沒有規劃好劇情就下筆, 不僅難寫好, 你要改也不知從何
下手.
--
◢████ ◢█ ◢██◣ ◢█ ◢███ ◢█ T-ara版怎麼去
████◤ ██ ◢██◣█ ██ ████ ██ s ~> T-ara
█/███ ██ ██ ██ █/█ ◢███ █/█ 歡迎您的光臨
████◤ ██ ██ ██ ██◤ ███◤ ██◤ 恩靜、智妍、孝敏
█/███ ██ █/██◤ ██ █/██ ██ 素妍、居麗、寶藍
████◤ █◤ ◥██◤ █◤ ████◤█◤ ψmakigoto123
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.121.197.115
※ 編輯: loveme00835 來自: 140.121.197.115 (11/26 01:10)