使用名为text.txt的文件作为命令行参数输入,如何创建文件对象并将文件加载到矢量>的2D矢量中?任何帮助都会很棒,谢谢! 这是我到目前为止只检查命令行的代码,但我不知道如何将它放入2d数组
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
using namespace std;
int main(int argc, char* argv[]) {
//1. Get filename from the command line
if (argc <= 1) {
cout << "Error: incorrect number of command line arguments\n"
"Usage: allwords filename" << endl;
return EXIT_FAILURE;
}
//Open the file to be read
ifstream infile(argv[1]);
if (!infile) {
cout << "Error: failed to open <" << argv[1] << ">\n"
"Check filename, path, or it doesn't exist.\n";
return EXIT_FAILURE;
}
// ...
}
答案 0 :(得分:0)
这可能适合你。它将创建一个向量,其中每个元素都是vector<char>
格式的文件中的单词。
// The list
std::vector<std::vector<char>> text;
std::string word;
// Read entire file
while (infile >> word) {
// Create the char vector and add it to main vector
text.push_back(std::vector<char>(word.begin(), word.end()));
}
// Note: need to #include <algorithm> for count
int num_a = 0;
// Check each and every word for 'a'
for (auto word : text) {
num_a += std::count(word.begin(), word.end(), 'a');
}
std::cout << "there are " << num_a << " a's" << std::endl;
// Vector for comparison
std::vector<char> a{ 'a' };
num_a = 0;
for (auto word : text) {
num_a += word == a;
}
std::cout << "there word a appears " << count << " times" << std::endl;