0
我真的不明白为什么会发生这种情况。我试图打开一个文件来读取一些数据到我的程序中,但failbit被立即设置,移动错误信息似乎failbit实际上在我尝试input.open()之前设置。在代码中的未声明的变量是生活在别处(混乱,但以后会改进)全局下面是一个较大的项目有问题的功能:ifstream set声明失败位
int read_input()
{
ifstream input;
string value;
int file_complete=0;
int count=0;
if(input.failbit)
printf("Really?\n");
input.clear();
input.open("Input.txt");
while(!file_complete)
{
if(input.failbit)
{
printf("Reading in set-up value number %d failed.", count+1);
getchar();
return 1;
}
else if(input.eofbit)
{
file_complete=1;
}
if(input.get()=='=')
{
getline(input, value);
switch(count)
{
case 0:
n_loci=atoi(value.c_str());
count++;
break;
case 1:
n_founders=atoi(value.c_str());
count++;
break;
case 2:
n_self=atoi(value.c_str());
count++;
break;
// Add more cases later
}
}
}
input.close();
return 0;
}
这个节目对我来说真可谓:
真的吗? 读入设置值1号失败。
我假设我已经做了一些非常愚蠢的事情,但现在已经在这一段时间。
PS我与G的最新版本++在Cygwin上编译在Windows上7