当遇到负整数时,如何停止从文本文件中读取整数?

时间:2011-04-07 09:08:57

标签: c++

我试图在c ++中编写一个简单的代码来从文本文件读取整数,代码应该在遇到负整数时停止读取。 txt文件在每一行包含1个正整数,最后一行是负整数。

我的代码现在使用eof,它也读取负整数,我不想要。

while(!inFile.eof())
{
    inFile >> data;
}

文字档案

10
22
33
34
-1   

提前致谢:)

4 个答案:

答案 0 :(得分:7)

HMM ..

int data = 0;
while(inFile >> data && data >= 0) 
{
 // do stuff with data.
}

答案 1 :(得分:2)

您至少需要读取负数以确定您已达到输入结束。

while( inFile >> data)
{
    if ( data < 0 ) break;
}

答案 2 :(得分:1)

def planckInv(lam, rad): 
     rad=rad*1.e6 #convert to W/m^2/m/sr 
     lam=lam*1.e-6 #convert wavelength to m 
     return (h*c/kB*lam)*( 1/ np.log( (2*h*c**2/lam**5) / rad +1 )) 

从文件中读取检查是否大于零然后打印

答案 3 :(得分:-5)

也许像这样尝试测试传入整数的东西会起作用:

while(!inFile.eof())
{
    inFile >> data;
    if ( data < 0 ) {
      break;
    }
}