Re: [問題] C語言的檔案IO

看板C_and_CPP (C/C++)作者 (忠言本逆耳,實願君向善.)時間16年前 (2009/09/04 00:07), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《iamivers0n (啾東)》之銘言: : ※ 引述《zptdaniel (忠言本逆耳,實願君向善.)》之銘言: : : #include<stdio.h> : : #include<stdlib.h> : : int main() : : { : : FILE *fp,*fo; : : fp = fopen("in.txt","w+"); : : char *str1; : char str1[100]; : : fprintf(fp,"HelloWorld!\n"); : : fprintf(fp,"ILoveComputerScience!\n"); 我現在有另一個問題..就是當字串當中加上空白的時候 例如 Hello World! I Love Computer Science! 我用fprintf將這兩個字串輸入檔案時沒有問題 格式都在 然後現在我要從該檔案讀出字串之後 反轉印到另外依個檔案當中 結果卻是 olleH!dlroWIevoLretupmoC!ecneicS 而我想達成的結果是 !dlroW olleH !ecneicS retupmoC evoL I 請問這樣要如何修改呢? 關於反轉的部分我是這樣寫 tag=strlen(str1); tag--; for(;tag>=0;tag--) fprintf(fo,"%c",str1[tag]); 這麼做的話在字串當中沒有空白時沒有問題,有空白時出亂子了@@ 請板上的高手前輩們給予指導啊! : fflush(fp); : rewind(fp); //maybe you need this? : : while(fscanf(fp,"%s",str1)!=EOF) : : printf("%s",str1); : : fclose(fp); : : system("pause"); : : return 0; : : } : : ------------------------- : : 我的問題是,我把兩個字串寫入in.txt當中 : : 然後我想要利用fscanf把字串讀出來 : : 但是..如果有while的那部份,文字檔中的文字就會消失. : : 如果沒有while那段的話,則字串可以順利寫入檔案中 : : 請問這是哪裡出錯了呢@@? : : Compiler是Dev-C++ : 可以的話換一套吧xd -- 學長學長!那邊有飆車族 學長學長!那邊剛好像有女生 學長學長~那邊有人紅燈右轉 砍人 被壓上車 ψQSWEET 鴿 鴿 鴿 鴿 鴿他媽的 鴿 ◎ ◎ 喔~~ ︶ ︶ ◎ ◎ 喔~~ ︶ ︶ ◎ ◎ 攔下來呀! ⊙◥ 3╯ξ 沒王法了 (哈欠) (煙~) 是不是?!( ) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.194.100.216

09/04 00:21, , 1F
你要這麼做, 必須一次把整行強制讀回來, 再做反轉....
09/04 00:21, 1F

09/04 00:22, , 2F
給你個提示, 算一下有空白時與沒空白時fscanf讀回幾次字
09/04 00:22, 2F

09/04 00:23, , 3F
串, 然後接著你的code你就會知道為什麼會反轉成這樣:)
09/04 00:23, 3F

09/04 00:31, , 4F
喔喔喔!!!我搞定了 謝謝樓上高手的提示!
09/04 00:31, 4F

09/04 10:08, , 5F
可以用getc阿...
09/04 10:08, 5F

09/04 10:39, , 6F
有種東西叫 fgets
09/04 10:39, 6F
文章代碼(AID): #1Ad-cf1Q (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Ad-cf1Q (C_and_CPP)