打印文件中前n个逗号的内容

由于工作需要,需要在一行数百行的数字中,每个数字使用逗号‘,’分隔开,如下,寻找第n个数字,并将其改成其他的值。写了一个如下的小程序。如果你有更好的方法,欢迎留言评论额。


47, 124, 137, 0, 237, 217, 104, 119, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 214, 159, 220, 168, 24, 23, 170, 144, 67, 115, 39, 246, 185, 104, 237, 244, 222, 212, 9, 254, 2    30, 28, 28, 132, 221, 232,     11, 153, 41, 39, 78, 196, 0, 0, 15, 3, 0, 0, 0, 0, 0, 167, 183, 119, 191, 118, 148, 21, 0, 243, 124, 0, 0, 38, 20, 158, 152, 143, 0, 0, 0, 106, 49, 22, 143, 140, 5, 150, 0,     231, 183, 63, 54, 47,     0, 0, 0, 0, 0, 0, 175, 102, 158, 208, 56, 93, 138, 108, 32, 185, 84, 34, 174, 124, 237, 4, 76, 128, 56, 116, 134, 237, 203, 250, 87, 203, 220, 25, 226, 46, 29, 223, 85, 6, 229, 2    03, 1, 195, 109, 1    68, 181, 47, 72, 131, 127, 0, 103, 154, 178, 200, 0, 108, 86, 95, 224, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 249, 182, 0, 0, 0, 0, 0, 0, 0, 153, 16, 29, 162, 0, 0, 0, 0,     0, 0, 90, 95,     36, 0, 0, 88, 0, 0, 0, 0, 254, 0, 0, 0, 0, 87, 19, 0, 85, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 163, 105, 151, 35, 150, 179, 0, 0, 0, 0, 0, 90, 104, 85, 95, 13    0, 184, 81    , 8, 204, 49, 170, 44, 83, 46, 0

将上面的数字序列放进文件 crc_pilot.txt中。

下如下的小代码:

#include <stdio.h>
#include <stdlib.h>
#define HELLO "hello word\r\n" 

int main(int argc, char *argv[])
{
    printf(HELLO);

    FILE *fp = NULL;
    char c;
    int i = 0;
    int number = 0;

    printf("file:%s,NUMber:%s\n", argv[1], argv[2]);
    number = atoi(argv[2]);
    printf("number = %d\n", number);
    fp = fopen(argv[1], "rb");

    while(1)
    {
        c = getc(fp);
        if(c == ',')
        {
            i++;
        }
        printf("%c ",c);
        if(i == number)
        {
            break;
        }
    }
    printf("\n");

    return 0;
}

做如下的执行:第一个参数是文件,第二个参数是要修改的第几个数字。

./hello crc_pilot.txt 173

 执行结果如下,这样要在这数百个数字中找到第173个,就相对容易一点了。


hello word
file:crc_pilot.txt,NUMber:173
number = 173
4 7 ,   1 2 4 ,   1 3 7 ,   0 ,   2 3 7 ,   2 1 7 ,   1 0 4 ,   1 1 9 ,   8 8 ,   0 ,   0 ,   8 9 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   2 1 4 ,   1 5 9 ,   2 2 0 ,   1 6 8 ,   2 4 ,   2 3 ,   1 7 0 ,   1 4 4 ,   6 7 ,   1 1 5 ,   3 9 ,   2 4 6 ,   1 8 5 ,   1 0 4 ,   2 3 7 ,   2 4 4 ,   2 2 2 ,   2 1 2 ,   9 ,   2 5 4 ,   2         3 0 ,   2 8 ,   2 8 ,   1 3 2 ,   2 2 1 ,   2 3 2 ,   1 1 ,   1 5 3 ,   4 1 ,   3 9 ,   7 8 ,   1 9 6 ,   0 ,   0 ,   1 5 ,   3 ,   0 ,   0 ,   0 ,   0 ,   0 ,   1 6 7 ,   1 8 3 ,   1 1 9 ,   1 9 1 ,   1 1 8 ,   1 4 8 ,   2 1 ,   0 ,   2 4 3 ,   1 2 4 ,   0 ,   0 ,   3 8 ,   2 0 ,   1 5 8 ,   1 5 2 ,   1 4 3 ,   0 ,   0 ,   0 ,   1 0 6 ,   4 9 ,   2 2 ,   1 4 3 ,   1 4 0 ,   5 ,   1 5 0 ,   0 ,           2 3 1 ,   1 8 3 ,   6 3 ,   5 4 ,   4 7 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   1 7 5 ,   1 0 2 ,   1 5 8 ,   2 0 8 ,   5 6 ,   9 3 ,   1 3 8 ,   1 0 8 ,   3 2 ,   1 8 5 ,   8 4 ,   3 4 ,   1 7 4 ,   1 2 4 ,   2 3 7 ,   4 ,   7 6 ,   1 2 8 ,   5 6 ,   1 1 6 ,   1 3 4 ,   2 3 7 ,   2 0 3 ,   2 5 0 ,   8 7 ,   2 0 3 ,   2 2 0 ,   2 5 ,   2 2 6 ,   4 6 ,   2 9 ,   2 2 3 ,   8 5 ,   6 ,   2 2 9 ,   2         0 3 ,   1 ,   1 9 5 ,   1 0 9 ,   1 6 8 ,   1 8 1 ,   4 7 ,   7 2 ,   1 3 1 ,   1 2 7 ,   0 ,   1 0 3 ,   1 5 4 ,   1 7 8 ,   2 0 0 ,   0 ,   1 0 8 ,   8 6 ,   9 5 ,   2 2 4 ,   0 ,   0 ,   0 ,   0 ,   0 ,   2 2 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   0 ,   2 8 ,   2 4 9 ,   1 8 2 , 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值