Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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++;?_C++ - Fatal编程技术网

C++ 如何使用C++;?

C++ 如何使用C++;?,c++,C++,我在code::Blocks IDE中使用了以下代码。我得到的行数为2。请帮我查一下密码 #include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream in("readInt.txt", ios::in); if(!in) { cout << "Cannot open file"; retu

我在code::Blocks IDE中使用了以下代码。我得到的行数为2。请帮我查一下密码

#include <iostream>
#include <fstream>
#include <string>

using namespace std;


int main()
{
ifstream in("readInt.txt", ios::in);
if(!in)
{
    cout << "Cannot open file";
    return 1;
}

string str;
int j=0;

while(in)
{
    getline(in,str);
    j++;
}

cout << "No of lines are: " << j;
in.close();
return 0;

}
#包括
#包括
#包括
使用名称空间std;
int main()
{
ifstream-in(“readInt.txt”,ios::in);
如果(!in)
{

因为文本文件中的行尾编码方式与系统上的约定不同,所以得到的结果可能太小

为您的系统保存或重新创建具有正确行尾的文件


在另一个方向上,为了获得过高的结果,呈现的代码

while(in)
{
    getline(in,str);
    j++;
}
…将为空文件生成计数1

取而代之的是

while( getline(in,str) )
{
    j++;
}

注:此备注仅涉及正确性,而非效率。

首先,您的文本文件没有新字符,因此文本中只有一行

更改它,然后用

while(getline(in,str))
{
    j++;
}

通过这种方式,您可以避免计算文件中的额外行数。无需担心。我看到外部链接文件中有4行。是的,我得到的输出为2。代码中是否有错误?使用
while(getline(in,str)){…}
@RSahu:如果有任何错误,请使用
while(in)
应该产生一个太高的计数,而不是太小的计数。您的意思是让循环按照“尝试读取--增加计数--检查读取是否成功”的顺序进行操作吗?如何保存或重新创建具有正确行结尾的文件以及我的系统?@Vishal:通常使用编辑器。我使用记事本++。在其“编辑”菜单中有一个“下线转换”子菜单。该子菜单具有以下树项:Windows(CR LF)、Unix(LF)和Macintosh(CR)。最后一个是出于历史原因,我相信。我认为现代Mac使用Unix约定。Re:如何更改行尾:
unix2dos
dos2unix
命令就是为此编写的。如果您需要以编程方式执行(即,无需外部应用程序),独立完成并不困难,但您需要以原始(二进制)模式打开文件并进行相应调整。不过,您需要某种参数作为提示,除非您想逐字猜测(在本例中,一个编写良好的函数很可能是正确的)。