C++ 使用C+中的std::vector进行元素访问(get和put)+;

C++ 使用C+中的std::vector进行元素访问(get和put)+;,c++,file,vector,C++,File,Vector,我试图使用vector操作文件的元素(.txt),例如推回,访问[]等。我想对从文件中检索到的元素执行简单编码,虽然最终结果不是我预期的,但我部分成功 以下是文件内容(示例): 我想在这里执行的是读取向量的每个元素(有点像二维),并用它们各自的ASCII代码对它们进行编码 这是我的代码(到目前为止): 预期产出: 100,97,116,117,109 45,54,51,53,51 97,114,103,111 请引导我实现这一点。 尝试cOut你已经选择了一个解决方案,但我想我会把它放在那里,

我试图使用vector操作文件的元素(
.txt
),例如
推回
访问[]
等。我想对从文件中检索到的元素执行简单编码,虽然最终结果不是我预期的,但我部分成功

以下是文件内容(示例):

我想在这里执行的是读取向量的每个元素(有点像二维),并用它们各自的
ASCII
代码对它们进行编码

这是我的代码(到目前为止):

预期产出:

100,97,116,117,109
45,54,51,53,51
97,114,103,111

<>请引导我实现这一点。

尝试cOut你已经选择了一个解决方案,但我想我会把它放在那里,并使用C++语言。 由于您在上述问题中似乎包含了
#include
,并且您包含了标记
C++
,因此我认为使用迭代器等更优雅的解决方案是值得的,尽管您已经选择了答案

template <typename T>
void printToScreen (std::vector<T> myVec, char delim = ',')
{
    typename std::vector<vector<T>>::const_iterator vit_x;
    typename std::vector<T>::const_iterator vit_y;
    for (vit_x = myVec.begin(); vit_x < myVec.end(); vit_x++) {
        for (vit_y = vit_x->begin(); vit_y < vit_x->end(); vit_y++) {
            std::cout << *vit_y << delim;
        }
        // remove last delimiter and add new line to console
        std::cout << "\b \n";
    }
}
或者如果需要另一个分隔符字符,如“.”

printToScreen (file,'.');
如果您有
C++11
,该函数可以进一步简化

template <typename T>
void printToScreen(const std::vector<std::vector<T>> &myVec, char delim = ',')
{
    for (auto i : myVec) {
        for (auto val : i) {
            std::cout << val << delim;
        }
        std::cout << "\b \n";
    }
}
输出:

std::vector<std::vector<int>> d1{{1,2,3},{2,3,4,7,6}, {3,4,5,2,1}};
std::vector<std::vector<std::string>> d2{{"Testing","function","prettyToScreen"},{"I'm","making","use of","the"}, {"C++","language"}};
 printToScreen(d1);
 std::cout << endl;
 printToScreen(d2, ' ');
1,2,3
2,3,4,7,6
3,4,5,2,1

Testing function prettyToScreen 
I'm making use of the 
C++ language 

对,只是它在每行的末尾打印逗号,如何避免…@user2754070
printToScreen (file);
printToScreen (file,'.');
template <typename T>
void printToScreen(const std::vector<std::vector<T>> &myVec, char delim = ',')
{
    for (auto i : myVec) {
        for (auto val : i) {
            std::cout << val << delim;
        }
        std::cout << "\b \n";
    }
}
std::vector<std::vector<int>> d1{{1,2,3},{2,3,4,7,6}, {3,4,5,2,1}};
std::vector<std::vector<std::string>> d2{{"Testing","function","prettyToScreen"},{"I'm","making","use of","the"}, {"C++","language"}};
 printToScreen(d1);
 std::cout << endl;
 printToScreen(d2, ' ');
1,2,3
2,3,4,7,6
3,4,5,2,1

Testing function prettyToScreen 
I'm making use of the 
C++ language