Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将函数设置为常量变量? 自从我在C++工作过一段时间,我正在帮助一个朋友。_C++ - Fatal编程技术网

如何将函数设置为常量变量? 自从我在C++工作过一段时间,我正在帮助一个朋友。

如何将函数设置为常量变量? 自从我在C++工作过一段时间,我正在帮助一个朋友。,c++,C++,有没有一种没有指针的方法可以将行数返回到常量int,以便在for循环中使用 我知道我可以用指针来做,但他还没有在课堂上学会,从道德上讲,我不能教他教授没有教过的任何东西 例如: int numLines = sizeOfFile(inputFile); for(int i = 0, i < numLines; i++){ //code here } 编辑:是我的错,我在快速编写代码。我今天在帮助他,我想有一个完成的项目,这样我可以在帮助他时完成它。我需要常量int的原因是,我可以将数

有没有一种没有指针的方法可以将行数返回到常量int,以便在for循环中使用

我知道我可以用指针来做,但他还没有在课堂上学会,从道德上讲,我不能教他教授没有教过的任何东西

例如:

int numLines = sizeOfFile(inputFile);
for(int i = 0, i < numLines; i++){
  //code here
}

编辑:是我的错,我在快速编写代码。我今天在帮助他,我想有一个完成的项目,这样我可以在帮助他时完成它。我需要常量int的原因是,我可以将数组设置为该大小,而不仅仅是for循环。数组就是问题所在。

在最简单的情况下,您只需查找文件中的'\n'字符数

假设您已经成功地将文件打开到:ifstream pFile,那么您可以使用来计算:

const auto numLines = count(istreambuf_iterator<char>(pFile), istreambuf_iterator<char>(), '\n')
现在,行将包含整个文件,每个元素都是一行。如果numline对您很重要,您可以使用sizeline。

您可以像初始化常规int一样初始化const int。与const int的不同之处在于初始化后无法重新分配

const int numLines = sizeOfFile(inputFile);
for(int i = 0, i < numLines; i++){
  //code here
}

打开文件,数数行数,关闭文件,返回计数。告诉你的朋友数一数文件中的换行字符数。墨菲·劳·杜德。从道德上讲,我不允许教他教授没有教过的任何东西。墨菲定律是怎么回事?他是一名一年级的学生,如果我进入指针,他会感到困惑,教授可能会因为他使用这些指针而给他打分。可能的重复:这是初始化,而不是作业。你不能分配一个常量对象,但你当然要初始化它一次。@Quentin-Fair point,我已经更正了我答案中的术语。我需要在数组中使用返回值,但我忘了提及that@Trend-很难弄清楚你在这里想做什么。如果要将文件大小设置为数组中的值,则无法执行此操作。数组值是在声明时初始化的,所以常量int的数组没有意义。您可能可以使用一个STD::vector对象并将值写入其中,这基本上是C++中的一个数组。如果要将数组大小设置为numLines,除非使用指针或std::vector,后者也使用指针。是的,我认为数组需要一个常量值。我正在帮助的那个孩子还没有学会指针。我会得到这部分作业的确切措辞。“但我认为灵活的数组大小是个怪胎。”昆汀,谢谢。很明显,我还没有在浏览器上点击build;我需要在数组中使用const int,而不仅仅是for循环,我忘了提到这一点。我在这里工作得很快,下午3点和他见面,现在是早上8点。想做什么quick@Trend我的理解是将文件的每一行存储在一个数组中,对吗?我要读取文件并计算行数。这将是记录/等级的数量。我想将从sizeOfFile返回的数字设置为常量int,这样我就可以使用它来设置数组,也可以在for循环中写入所述数组,然后写入报告卡并输出到屏幕。
const int numLines = sizeOfFile(inputFile);
for(int i = 0, i < numLines; i++){
  //code here
}