-
Notifications
You must be signed in to change notification settings - Fork 0
C Plus Plus Example Code
MMDRZA edited this page Oct 18, 2024
·
1 revision
#include <iostream>
#include <string>
#include <curl/curl.h>
#include <nlohmann/json.hpp>
// Function to handle data received by curl
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* s) {
s->append(static_cast<char*>(contents), size * nmemb);
return size * nmemb;
}
// Function to fetch and display cryptocurrency data
void fetchCryptoData() {
CURL* curl;
CURLcode res;
std::string readBuffer;
curl = curl_easy_init();
if (curl) {
// Set URL
curl_easy_setopt(curl, CURLOPT_URL, "https://raw.githubusercontent.com/Crypto-Static/Rate/main/rateStatic.json");
// Set callback function to write data
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);
// Perform request
res = curl_easy_perform(curl);
// Check if the request was successful
if (res != CURLE_OK) {
std::cerr << "Failed to fetch data: " << curl_easy_strerror(res) << std::endl;
} else {
// Parse JSON using nlohmann::json
auto jsonData = nlohmann::json::parse(readBuffer);
// Loop through and display each coin's information
for (const auto& coin : jsonData) {
std::string symbol = coin["symbol"];
std::string lastPrice = coin["lastPrice"];
std::string highPrice24h = coin["highPrice24h"];
std::string lowPrice24h = coin["lowPrice24h"];
std::string changeRate = coin["changeRate"];
std::string lastUpdated = coin["lastUpdated"];
std::cout << "Symbol: " << symbol << " | LAST: " << lastPrice
<< " | HIGH: " << highPrice24h << " | LOW: " << lowPrice24h
<< " | CHANGE: " << changeRate << " | UPDATED: " << lastUpdated << std::endl;
}
}
curl_easy_cleanup(curl);
}
}
int main() {
fetchCryptoData();
return 0;
}
Install Dependencies: You need to have libcurl
and the nlohmann/json
library installed.
g++ -o crypto_fetcher crypto_fetcher.cpp -lcurl -std=c++11
./crypto_fetcher
👨💻 Programmer : PyMmdrza 🌍 Official Website Mmdrza.Com 📧 Email : [email protected]
📧 [email protected]