C++ 如何使用C++;?
我在code::Blocks IDE中使用了以下代码。我得到的行数为2。请帮我查一下密码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
#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
命令就是为此编写的。如果您需要以编程方式执行(即,无需外部应用程序),独立完成并不困难,但您需要以原始(二进制)模式打开文件并进行相应调整。不过,您需要某种参数作为提示,除非您想逐字猜测(在本例中,一个编写良好的函数很可能是正确的)。