Sha*_*ark 1 c++ arrays text-files
我需要C++中的简单程序,它将打开文本文件并逐行查找第二个参数.
文本内容:
1, red
2, blue
3, green
4, orange
Run Code Online (Sandbox Code Playgroud)
所以我需要一个逐行的程序,每行转换成数组(两个元素),然后比较第一个元素和用户交互插入的数字.
因此,如果用户插入2,它逐行,比较阵列行的第一个元素,如果匹配,它打印数组中的第二个元素(蓝色),如果用户键入3,它打印绿色...
我一直在用PHP工作,而且比这更容易,所以我现在有点困惑了......:/
干得好:
#include <iostream>
#include <fstream>
#include <map>
#include <sstream>
int main(int argc, char* argv[]) {
if (argc != 2) {
std::cerr << "Usage: test [inputfile]" << std::endl;
return 1;
}
std::fstream stream(argv[1]);
if (!stream.good()) {
std::cerr << "Error: could not open file: " << argv[1] << std::endl;
return 2;
}
std::string line;
std::map<int, std::string> map;
while (std::getline(stream, line)) {
std::string::size_type pos = line.find(',');
std::stringstream sstream(line.substr(0, pos));
int index;
sstream >> index;
map[index] = line.substr(pos+2);
}
int in;
while (std::cin >> in) {
std::map<int, std::string>::iterator i = map.find(in);
if (i == map.end())
std::cerr << "index not found" << std::endl;
else
std::cout << i->second << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)