前提・実現したいこと
string url=何かしらのURL
http::WebClient x(url)を使い接続の要求をして
接続先には一行ごとに1つのファイルが入っていて3行あり合計3つのファイルが存在します(テキストファイル2つとpngファイル1つ)。
その3つのファイルをURLとしてアクセスし、アクセスした内容をファイルとして保存したいです
発生している問題・エラーメッセージ
得るためにgetline関数を用いて中身を読み取り読み取ったファイル名を使いアクセスしたいのですが一行目のファイルにしかアクセスすることができません。
該当のソースコード
C++
#include <iostream>
#include <webcli.hpp>
using namespace std;
void read_body(http::WebClient& x, string s)
{
ofstream fx(s);
if (!fx) {
cerr << "cannot open\n";
return;
}
char ch;
while (x >> noskipws >> ch)
fx << ch;
}
int main(int argc, char* argv[])
{
// 接続して要求を送る
vector<string> a(argv,argv+argc);
string url=a[1];
http::WebClient x(url);
if (!x) {
cout << x.error << "\n";
return 1;
}
string s;
while(getline(x,s)){
cout<<s<<endl;
x.request("URL名"+s);
read_body(x,s);
}
for(const string& s : a){
cout<< s <<endl;
}
return 0;
}
試したこと
x.requestとread_bodyをwhile文の中からなくすとすべて出力することができるのですが、入れると一行目までしか出力されなかったです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー