从C脚本中的文件中读取单个字符串,并将其作为URL的一部分发送

时间:2014-03-26 15:36:23

标签: c curl

我有一个C脚本,它将数据从条形码扫描器发送到服务器。 我想做的是,从文件中读取单个字符串,如“1234567890”(仅包含这10个数字),并将其用作url curl发送到的一部分。我希望找到像

这样的东西

但它似乎不那么简单

我的脚本现在看起来像这样

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc,char *argv[])

    { 
    while (1)
        {
        char buf[256],syscmd[512];
        int i;

        /* Get next barcode */
        printf("Waiting for bar code [q=quit]:  ");
        if (fgets(buf,255,stdin)==NULL)
            break;

        /* Clean CR/LF off of string */
        for (i=0;buf[i]!='\0' && buf[i]!='\r' && buf[i]!='\n';i++);
        buf[i]='\0';

        /* q = quit */
        if (!strcmp(buf,"q"))
            break;

        /* Build into curl command */
        sprintf(syscmd,"curl \"http://www.xyz.com/test/order/complete?barcode=%s\"",buf);

        /* Execute--this will wait for command to complete before continuing. */
        system(syscmd);
        } 
    return(0);
  }

我想要的是我的网址看起来像“http://www.xyz.com/1234567890/test/order/complete?barcode=%s”,其中从文件中读取数字1234567890

1 个答案:

答案 0 :(得分:0)

我认为以下是类似于你的程序:

#include <stdio.h>
#include <stdlib.h>

int main() {
    char buf[100], syscmd[512];

    while(fgets(buf,255,stdin) != NULL) {
            printf("%s\n", buf);
    }

    register int i = 0;
    while(buf[i] != '\0') {
            ++i;
    }
    buf[i-1] = '\0';

    if (buf) {
            sprintf(syscmd,"curl \"http://www.xyz.com/test/order/complete?barcode=%s\"",buf);
            system(syscmd);
    } else {
            printf("Need input");
    }
}

执行方式:

./ hit_url&lt; barcode.txt

在barcode.txt这里我保留了1234567890。