首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在system()中使用C代码变量

如何在system()中使用C代码变量
EN

Stack Overflow用户
提问于 2020-12-10 13:21:17
回答 2查看 87关注 0票数 2

我正在使用C代码和sed。我想阅读间隔1-10,11-20等行来执行一些计算。

代码语言:javascript
复制
int i,j,m,n;
for(i=0;i<10;i++){
   j=i+1;
   //correction. m,n is modified which was incorrect earlier.
   m=i*10;
   n=j*10;
   system("sed -n 'm,n p' oldfile > newfile");
   }

外卖。

代码语言:javascript
复制
  m,n p

它看起来变量没有在系统中传递。有什么办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-10 13:27:52

使用sprintf构建命令行:

代码语言:javascript
复制
char cmdline[100];
sprintf(cmdline, "sed -n '%d,%dp'  oldfile.txt > newfile.txt", 10*i+1, 10*(i+1));
puts(cmdline); // optionally, verify manually it's going to do the right thing
system(cmdline);

(这很容易发生缓冲区溢出,但如果命令行参数不太灵活,则100字节就足够了。)

票数 2
EN

Stack Overflow用户

发布于 2020-12-10 13:28:05

在C中不能替换字符串文字的一部分,您需要的是

patterns

  • Replace与
  • 形成字符串--这些模式具有适当的值,具有格式化的I/O函数.

sprintf()/snprintf()将是你的朋友。您可以做类似的事情(复制pmg的评论)

代码语言:javascript
复制
char cmd[100]; 
snprintf(cmd, 100, "sed -n '%d,%dp'  oldfile > newfile", 10*i+1, 10*(i+1)); 
system(cmd);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65235342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档