假设我有足够的空间,我如何向数组中添加元素?我的代码看起来像这样:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
ofstream out("hi.out");
ifstream in("hi.in");
string currentLine;
string values[135];/*Enough for worst case scenario*/
if (out.is_open && in.isopen()){
while (in >> currentLine){
/*Add currentLine to values*/
}
/*Do stuff with values and write to hi.out*/
}
out.close()
in.close()
return 0;
}
答案 0 :(得分:4)
无需自己编写循环。使用您的数组:
auto l = std::copy(std::istream_iterator<std::string>(in), {}, values);
l - values
是读取的字符串数。
或者甚至更好,使用矢量,这样您就不必担心最糟糕情况的可能性&#34;不是最糟糕的情况。
std::vector<std::string> values(std::istream_iterator<std::string>(in), {});
答案 1 :(得分:1)
您可以使用索引计数器变量:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
ofstream out("hi.out");
ifstream in("hi.in");
string currentLine;
string values[135];/*Enough for worst case scenario*/
int index = 0;
if (out.is_open && in.isopen()){
while (in >> currentLine){
/*Add currentLine to values*/
values[index++] = currentLine;
}
/*Do stuff with values and write to hi.out*/
}
out.close()
in.close()
return 0;
}
变量index
,一旦循环完成,将包含数组中的字符串数。