C++里,fin和fscanf陶瓷墙砖地砖能否混用用?两者用起来哪个好用,分别有什么优势?

fscanf()中的格式控制
[问题点数:40分,结帖人bb143]
fscanf()中的格式控制
[问题点数:40分,结帖人bb143]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2012年 总版技术专家分年内排行榜第一
2013年 总版技术专家分年内排行榜第七2011年 总版技术专家分年内排行榜第五2009年 总版技术专家分年内排行榜第九
2010年12月 C/C++大版内专家分月排行榜第二
2010年12月 C/C++大版内专家分月排行榜第二
2013年6月 Linux/Unix社区大版内专家分月排行榜第二2013年5月 Linux/Unix社区大版内专家分月排行榜第二2013年3月 Linux/Unix社区大版内专家分月排行榜第二2013年1月 Linux/Unix社区大版内专家分月排行榜第二2012年12月 Linux/Unix社区大版内专家分月排行榜第二2012年8月 Linux/Unix社区大版内专家分月排行榜第二2011年12月 Linux/Unix社区大版内专家分月排行榜第二2011年10月 C/C++大版内专家分月排行榜第二2011年10月 Linux/Unix社区大版内专家分月排行榜第二
2012年6月 C/C++大版内专家分月排行榜第三2012年6月 PHP大版内专家分月排行榜第三2012年5月 C/C++大版内专家分月排行榜第三2012年3月 Linux/Unix社区大版内专家分月排行榜第三2012年2月 Linux/Unix社区大版内专家分月排行榜第三2011年11月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。C++使用文件流,其中有多行内容,通过fscanf读取_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:261,515贴子:
C++使用文件流,其中有多行内容,通过fscanf读取收藏
C++使用文件流,其中有多行内容,通过fscanf读取内容输入到结构体,现在需要定位到某个关键字 怎么写
比如a.txt内容为:
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或共有 2512 人关注过本帖
标题:fscanf()与fread()的区别
等 级:青峰侠
帖 子:938
专家分:1756
结帖率:98.26%
&&已结贴√
&&问题点数:20&&回复次数:3&&&
fscanf()与fread()的区别
fscanf()与fread()之间有什么区别???
有高手帮忙看一下我的这个程序
#define LONG 5
typedef struct td {char name[10];
&&&&&&&&&&&&&&& char code[20];
&&&&&&&&&&&&&&&
void fun(STUDENT *std);
#include&string.h&
#include&stdlib.h&
&#include&stdio.h&
&STUDENT&&student[LONG];
&char filename[20];
&gets(filename);
&fp=fopen(filename,&rb&);
&&if(fp==NULL){
&&fprintf(stderr,&Error of opening&);
&&exit(1);
&&for(count=0;count&LONG;count++)
&&fscanf(fp,&%s%s%d&,student[count].name,student[count].code,student[count].age);
(这里我开始用的是fread()可是读不了文件中的内容)
&&fun(student);
&&for(count=0;count&LONG;count++)
&&printf(&%s\n%s\n%d\n&,student[count].name,student[count].code,student[count].age);
&&fclose(fp);
&&return 0;
&&void fun(STUDENT *std)
&&STUDENT p_
&&int i,j;
&&&for(i=0;i&LONG;i++)
&&&for(j=i+1;j&LONG;j++){
if(strcmp((std+i)-&name,(std+j)-&name)&0){
&&p_student=*(std+i);
&&*(std+i)=*(std+j);
*(std+j)=p_
if(strcmp((std+i)-&name,(std+j)-&name)==0)
if((std+i)-&age&(std+j)-&age){
p_student=*(std+i);
&&*(std+i)=*(std+j);
*(std+j)=p_
这个是文件中的内容
这个是输出的内容:
怎么输出会有错误呢??
搜索更多相关主题的帖子:
等 级:蜘蛛侠
帖 子:231
专家分:1038
/question/.html这个可以上百度····
等 级:论坛游民
帖 子:39
专家分:67
&&得分:10&
fread()与fwrite()对应,文件内容应该是二进制形式(“b”)的机内编码,不需要格式控制符,但要读写单位、数量、缓冲区首址等。
fscanf()与fprintf()对应,文件内容应该是文本形式的(“t”)--所以要有格式控制符(如%d、%c、%s等)
等 级:论坛游民
帖 子:39
专家分:67
fscanf(fp,&%s%s%d&,student[count].name,student[count].code,student[count].age);
两个%s读取的字符串怎么分割啊?文件中一行中两个“串”中间可没有“\0”啊!?
版权所有,并保留所有权利。
Powered by , Processed in 0.014012 second(s), 6 queries.
Copyright&, BCCN.NET, All Rights Reserved3071人阅读
C/C++(55)
首先要对fscanf和fgets这两个文件函数的概念有深入的了解,对于字符串输入而言这两个函数有一个典型的区别是:
&&&&&&&&& fscanf读到空格或者回车时会把空格或回车转化为/0(字符串结束符)而fgets函数则把空格(回车在下文解释)作为字符接收。
&&&&&&&&& 有这样一个例子:
char str[13];
scanf(&%s&,str);
&&&&&&&&& 如果输入以下12个字符How are you?回车
&&&&&&&&& 实际上并不是把这12个字符加上/0送到数组str中,而只将空格前的“How”送到str中,由于把“How”作为一个字符串处理,因此在其后加/0。
&&&&&&&&& 现在我们来看一看在题目的第一个循环中,用gets函数接受字符串的情况。
&&&&&&&&& 1、输入“ABC回车DEF”。
&&&&&&&&& 现在我们来说以下fgets函数对于回车的处理方法。
&&&&&&&&& fgets函数的定义是这样的:
&&&&&&&&& char *fgets(char *s,int n,FILE *fp)
&&&&&&&&& 当fgets读到回车符时,函数会结束,把回车符也作为一个字送入参数s指向的缓冲区(注意是缓冲区而不是内存),fgets()函数在读取结束后,再向缓冲区送一个/0字符,从而使缓冲区的字符成为C字符串。
&&&&&&&&& 也就是说fgets函数读到回车的时候,不象fscanf函数那样在内存中把回车转换/0,而是在缓冲区里面处理的。这样处理的结果是回车不起作用,也就是说当我们输入ABC回车DEF时,ABCDEF在内存中是连续存放的。所以在第二个循环输出时自然不会换行。
&&&&&&&&& 2、输入“I AM A STUDENT”,在字符中间加空格。
&&&&&&&&& 在第一次循环中,用fgets读入的结果是“I AM A STUDENT”,空格作为字符处理。那么在第二次循环中,用fscanf读入 “I AM A STUDENT”后将字符串中的空格转换为了/0,也就上将一个字符串分成了四个&I& &AM& &A& &STUDENT&。在这里可能有人要问,那么既然加了/0,为什么循环在读到/0还能继续呢?要注意的是循环的结束条件是EOF(文件结束)而不是/0(文件结束符)。
&&&&&&&&& 第一次输出&I& 遇到/0输出回车结束,继续判断循环条件发现文件并没有结束,那么继续输出&AM&和回车.......一直到&STUDENT&回车。
&&&&&&&&& 补充一个问题,如果想让&I& &AM& &A& &STUDENT&输出在同一行上程序应该怎么改?
&&&&&&&&& 答案就是:fscanf换成fgets(fp, str) 。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:362489次
积分:4375
积分:4375
排名:第5083名
原创:79篇
转载:129篇
评论:12条
(3)(2)(4)(2)(1)(2)(1)(1)(5)(3)(1)(3)(7)(6)(2)(3)(4)(2)(3)(5)(2)(3)(1)(14)(16)(14)(13)(17)(7)(11)(27)(8)(17)(1)(1)

我要回帖

更多关于 陶瓷墙砖地砖能否混用 的文章

 

随机推荐