作者zptdaniel (忠言本逆耳,实愿君向善.)
看板C_and_CPP
标题Re: [问题] C语言的档案IO
时间Fri Sep 4 00:07:02 2009
※ 引述《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
1F:推 VictorTom:你要这麽做, 必须一次把整行强制读回来, 再做反转.... 09/04 00:21
2F:→ VictorTom:给你个提示, 算一下有空白时与没空白时fscanf读回几次字 09/04 00:22
3F:→ VictorTom:串, 然後接着你的code你就会知道为什麽会反转成这样:) 09/04 00:23
4F:→ zptdaniel:喔喔喔!!!我搞定了 谢谢楼上高手的提示! 09/04 00:31
5F:推 aitjcize:可以用getc阿... 09/04 10:08
6F:→ visor:有种东西叫 fgets 09/04 10:39