我有一个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
答案 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。