| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 390 人关注过本帖, 1 人收藏
标题:求各位C语言高手帮看看这些是为什么这样啊?,谢啦
只看楼主 加入收藏
空明净措
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-1-2
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:2 
求各位C语言高手帮看看这些是为什么这样啊?,谢啦
1. typedef struct S
              {int g;char h;}T;
          如果我在main函数中间定义了struct T b;会报错,而用struct S定义则不会报错,这是为什么啊?
       2.#include <stdio.h>
           main()
            {FILE *fp;char str[10];
             fp=fopen("myfile.dat","w");
             fputs("abc",fp);fclose(fp);
             fp=fopen("myfile.dat","a");
             fprintf(fp,"%d",28);
             rewind(fp);
             fscanf(fp,"%s",str);puts(str);
             fclose(fp);
            }
            老师为什么运行的结果是abc28而不是abc,fscanf是不是都把文件中的数据都读进去了?
       3.#include <stdio.h>
           #include <string.h>
          main()
           {char x[]="string";
             x[0]=0;x[1]='\0';x[2]='\0';
             printf("%d %d\n",sizeof(x),strlen(x));
           }
             为什么数字0不算一个字符呢,运行出来的结果是7 0;
搜索更多相关主题的帖子: include C语言 
2012-01-03 23:16
kuangfengjiw
Rank: 2
等 级:论坛游民
帖 子:20
专家分:77
注 册:2011-12-16
收藏
得分:10 
1.typedef的用法是定义一个类型的新类型名,这里就是把T代替struct S,,所以struct T b肯定会报错啊。。。
2.为什么不是abc28?先把28放入了文件中,再把28格式化输入文件中,fscanf(fp,"%s",str);是把文件内容写给str。
3.x[0]=0//,数组是字符型,赋值语句会把右边的无条件转换为左边类型,0对应的ascii为NULL在这里等价‘\0’,sizeof是计算字符串实际长度,strlen()碰到‘\0’就结束,所以为0;
2012-01-04 16:13
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:10 
fp=fopen("myfile.dat","a");
"a" 是向文本文件尾追加数据,abc先输的28是追加的。

梅尚程荀
马谭杨奚







                                                       
2012-01-04 16:50
快速回复:求各位C语言高手帮看看这些是为什么这样啊?,谢啦
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033673 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved