从文本文件读取行到C ++ system()命令

时间:2012-09-24 04:16:23

标签: c++

我是C ++的新手,我正在尝试从只包含一个字符串的文本文件中读取一个字符串,并将其用作system()调用的输入。这就是我所拥有的:

#include <iostream>
#include <string>
#include <fstream>

int main(int argc, const char * argv[])
{
    std::string curlString = "/usr/bin/curl -O ";
    std::ifstream file("/Users/test/Desktop/test.txt");
    if (file) {
    std::string line;
    while (std::getline( file, line ));
    system(curlString + line);
    }
 }

这可能是一个完全彻底的混乱,所以非常感谢帮助,我真的很感激。

提前感谢您的任何见解!

2 个答案:

答案 0 :(得分:1)

我不确定问题到底是什么。它是从文件中读取的吗?有一些例子如何在stackoverflow中执行此操作。为什么你不这样做:

std::string curlString = "/usr/bin/curl -O ";
std::string urlString= /* function that reads one line of code and does some verifcation if it is a URL */
system(curlString + urlString);

答案 1 :(得分:0)

这似乎是一种非常迂回的方式来实现你的结果。

有一些更简单的方法可以实现这一目标:

  • 您可以通过提示用户
  • 完全使用C ++构建字符串
  • 您可以将字符串从Bash传递到C ++,方法是将其作为命令行参数发送到argv
  • 您可以从curl
  • 致电bash

除非您特别需要创建文件,否则此处的文件似乎有点过分。