我並沒有真正的聲明標識符。這是我的代碼:簡單C++程序上的多個未聲明的標識符
#include "pugi/pugixml.hpp"
#include <iostream>
#include <string>
#include <map>
int main() {
pugi::xml_document doca, docb;
std::map<std::string, pugi::xml_node> mapa, mapb;
if (!doca.load_file("a.xml") || !docb.load_file("b.xml"))
return 1;
for (auto& node: doca.child("site_entries").children("entry")) {
const char* id = node.child_value("id");
mapa[id] = node;
}
for (auto& node: docb.child("site_entries").children("entry"))
const char* idcs = node.child_value("id");
if (!mapa.erase(id)) {
mapb[id] = node;
}
}
for (auto& ea: mapa) {
std::cout << "Removed:" << std::endl;
ea.second.print(std::cout);
}
for (auto& eb: mapb) {
std::cout << "Added:" << std::endl;
eb.second.print(std::cout);
}
我得到在編譯的時候了不少錯誤,但一個是出現了幾次的誤差error: use of undeclared identifier
例如:
- 的src/main.cpp中:21:25錯誤:使用未聲明的標識符'id' if(!mapa.erase(id)){ ^
- src/main.cpp:22:18:error:使用未聲明的標識符'id' mapb [id] = node; ^
- src/main.cpp:22:24:錯誤:使用未聲明的標識符'node' mapb [id] = node;
在閱讀了這個主題後,它似乎在談論不包括沒有字符串的iostream,但我已經這樣做了。
https://stackoverflow.com/a/22197031/1738522
我很新的C++所以任何幫助,將不勝感激。
您是否讀過錯誤消息所指的行?你聲明一個名爲'idcs'的變量,然後將其稱爲'id'。更改一個名稱以匹配其他名稱。 –
而且它似乎也有在第二個for循環中缺少左括號。 – noobProgrammer
在一個語句塊中聲明的變量(例如for for循環)不可用於語句塊外的代碼。因此,第一個for循環中的變量id不能被第二個for循環中的語句訪問。也許錯誤是一個錯字? –