免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 10523 | 回复: 34
打印 上一主题 下一主题

C问题 求高手帮忙 要全部用C编才行 谢谢 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-25 10:45 |只看该作者 |倒序浏览

以@打头的表示地址,*号表示的是数据:
如下一段(原文件的片段)将其转换成另外一种格式存到另外一个文件里面
要求:①遇到‘@’打印其第5~15位,遇到偶数‘@’不打印;
         ②遇到‘*’打印第16~17位。
         ③在Turbo C下能运行。
@0640 0010000000 AA
*08000000000000A50053
*08000000000000960062
*080000000000005A009E
*0800000000000069008F
*080000000000005A009E
*080000000000005A009E
*080000000000009E005A
*080000000000002000D8
@06400010000008A2
*080000000000000000F8
*080000000000001000E8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000800F0                                                       
*080000000000000000F8
转换后格式(即要得到的格式)
0010000000  A5  96  5A  69  5A  5A  9E  20  00  10  00  00  00  00  08  00

论坛徽章:
0
2 [报告]
发表于 2008-09-25 10:53 |只看该作者

上面的原文件的一小部分

@064002D0BD08081B
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
@064002D0BD081013
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
@064002D0BD08180B
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
@064002D0BD082003
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
@064002D0BD0828FB
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
@064002D0BD0830F3
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
@064002D0BD0838EB
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8
*080000000000000000F8

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
3 [报告]
发表于 2008-09-25 11:20 |只看该作者
什么叫“遇到偶数‘@’不打印”呢?
@0640 0010000000 AA
*08000000000000A50053
*08000000000000960062
*080000000000005A009E
*0800000000000069008F
*080000000000005A009E
*080000000000005A009E
*080000000000009E005A
*080000000000002000D8
@06400010000008A2
以上处理后打印什么呢?

论坛徽章:
0
4 [报告]
发表于 2008-09-25 11:47 |只看该作者
就是遇到第二个@不打印 第三个打印第四个不打印第五个打印第六个不打印 。。。。。。。。。。。。。
但偶数后面的*行后面的还要打印。。。。。。谢谢帮忙

论坛徽章:
0
5 [报告]
发表于 2008-09-25 12:43 |只看该作者
大哥大姐们,救命啊 ,这个题我要是这周做不出来可是会被吵鱿鱼的,帮帮忙,救命啊。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2008-09-25 12:51 |只看该作者
这个很简单就可以办到,如果你做不出来,我想我也会炒你鱿鱼。
你先自己尝试做做,说说难点在哪里。

论坛徽章:
0
7 [报告]
发表于 2008-09-25 13:27 |只看该作者
炒鱿鱼算了,活该

论坛徽章:
0
8 [报告]
发表于 2008-09-25 14:15 |只看该作者
晕, 我就看了几天书,他就让我们开始编程,以前就没接触过 你们帮忙编个吧,先谢谢拉

论坛徽章:
0
9 [报告]
发表于 2008-09-25 14:20 |只看该作者
#include  "d:\mcutest\tc\stdio.h"
#include  "d:\mcutest\tc\stdlib.h"
void main(void)
{
FILE *fp1,fp2;
char i,j,k;
if((fp1=fopen("d:\\file1.txt","r")==NULL)
{
cputs("cann't open source file\n\r";
fclose(fp1);
}
fp2=fopen("d:\\file1.txt","w+";
while((fgets(buf,sizeof(buf),fp1)!=NULL))
switch(buf[0])
{
case '@':    for(i=0;i<10;i++)
                {
                 add=buf[5+i];
                }
              if((add[9] & 0xf)==0)
                {
                 fputs("\n\r",fp2);
                 for(i=0;i<10;i++) fputc(add,fp2);
                    fputc(0x20,fp2);
                }
              else fputc(0x20,fp2);
break;
case'*':    for(j=0;j<2;j++)
               {
                add[j]=buf[15+j];
               }
             if((add[15] & 0xf)==0)
               {
                fputs("\n\r",fp2);
                for(j=0;j<2;j++) fputc(add[j],fp2);
                    fputc(0x20,fp2);
               }
             else fputc(0x20,fp2);
break;



这是目前我编的,但错误多多啊,可怜死我了

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
10 [报告]
发表于 2008-09-25 17:06 |只看该作者
参考一下吧:

  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>

  4. #define BUF_LEN 50

  5. int main()
  6. {
  7.         int line_num = 1;
  8.         FILE *fp1, fp2;
  9.         char buf[BUF_LEN];
  10.         char tmp_buf[BUF_LEN];
  11.         char *p;
  12.         if ((fp1 = fopen("file1.txt", "r")) == NULL) {
  13.                         printf("src file open err\n");
  14.         }
  15.         while((fgets(buf, BUF_LEN, fp1) != NULL)) {
  16.                 p = buf;
  17.                 //printf("%s\n", p);
  18.                 switch(*p) {
  19.                         case '@':
  20.                                 if (line_num % 2 == 0) {
  21.                                         line_num++;
  22.                                         continue;
  23.                                 }
  24.                                 memcpy(tmp_buf, p+5, 11);
  25.                                 tmp_buf[11] = '\0';
  26.                                 printf("%s\n", tmp_buf);
  27.                                 break;
  28.                         case '*':
  29.                                 memcpy(tmp_buf, p+15, 2);
  30.                                 tmp_buf[2] = '\0';
  31.                                 printf("%s\n", tmp_buf);
  32.                                 break;
  33.                         default:
  34.                                 break;
  35.                 }
  36.                 line_num++;
  37.         }
  38.         printf("Total line: %d\n", line_num);
  39.         return 0;
  40. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP