出力をファイルにリダイレクトするコードを実行していますが、fstream、ostream、streambuf()を使用してエラーが発生します。それはストリームを使用してファイルに保存するC++エラー
がいることを言う - "fstreamのは" あいまいです
- "のostreamは、" あいまいな
級 "のstd :: basic_ostream>" "ストリームバッファ" 何のメンバーを持っていない
-class「stdがあります:: shared_ptr "にはメンバーがいません"閉じる "
私はすでにインクルードのためにそれを検索し、カサブランカの残りのAPIの最新バージョンをインストールしました...そして私はまだそれらのエラーを取得します。
ここコード
#include <sstream>
#include <iostream>
#include <fstream>
#include <cpprest/http_client.h>
#include <cpprest/filestream.h>
#include <cpprest/http_listener.h> // HTTP server
#include <cpprest/json.h> // JSON library
#include <cpprest/uri.h> // URI library
#include <cpprest/ws_client.h> // WebSocket client
#include <cpprest/containerstream.h> // Async streams backed by STL containers
#include <cpprest/interopstream.h> // Bridges for integrating Async streams with STL and WinRT streams
#include <cpprest/rawptrstream.h> // Async streams backed by raw pointer to memory
#include <cpprest/producerconsumerstream.h> // Async streams for producer consumer scenarios
using namespace utility; // Common utilities like string conversions
using namespace web; // Common features like URIs.
using namespace web::http; // Common HTTP functionality
using namespace web::http::client; // HTTP client features
using namespace concurrency::streams; // Asynchronous streams
using namespace web::http::experimental::listener; // HTTP server
using namespace web::experimental::web_sockets::client; // WebSockets client
using namespace web::json;
//Method
auto fileStream = std::make_shared<std::ostream>();
// Open stream to output file.
pplx::task<void> requestTask = fstream::open_ostream(U("results.html")).then([=](ostream outFile) //Error here on the fstrea and ostream
{
*fileStream = outFile;
// Create http_client to send the request.
http_client client(U("http://localhost:53213"));
// Build request URI and start the request.
uri_builder builder(U("/search"));
builder.append_query(U("q"), U("cpprestsdk github"));
return client.request(methods::GET, builder.to_string());
})
// Handle response headers arriving.
.then([=](http_response response)
{
printf("Received response status code:%u\n", response.status_code());
// Write response body into the file.
return response.body().read_to_end(fileStream->streambuf()); //Error here on streambuf
})
// Close the file stream.
.then([=](size_t)
{
return fileStream.close(); //Error on close
});
// Wait for all the outstanding I/O to complete and handle any exceptions
try
{
requestTask.wait();
}
catch (const std::exception &e)
{
printf("Error exception:%s\n", e.what());
}
それを得たダブルチェックは、あなたが 'std'接頭辞を使用してみましたができると思う:あなたの
fileStream
EDITに
->
を使用'std :: fstream'のようなものですか? –はい。 fstream :: open_ostream(U( "results.html"))。次に([=](ostream outFile))、次のエラーが表示されます。\t class "std :: basic_fstream> "メンバーがいない" open_ostream " –
Tazz
@Tazzそれは' open_ostream'というメンバーを持っていないので、推測を止めていくつかのドキュメントを読んでみると良いでしょう。 – molbdnilo