C++ 文件输入错误
我试图在我的代码中输入一个文件,其中包含一个带有新行的整数列表 我使用以下代码输入文件中的内容C++ 文件输入错误,c++,c,C++,C,我试图在我的代码中输入一个文件,其中包含一个带有新行的整数列表 我使用以下代码输入文件中的内容 int main() { FILE* f = fopen("Integers.txt", "r"); int n = 0, i = 0; int numbers[5]; // assuming there are only 5 numbers in array input while( fscanf(f, "%d\n", &n) > 0 ) // parse %d followed b
int main()
{
FILE* f = fopen("Integers.txt", "r");
int n = 0, i = 0;
int numbers[5]; // assuming there are only 5 numbers in array input
while( fscanf(f, "%d\n", &n) > 0 ) // parse %d followed by '\n'
{
numbers[i++] = n;
}
fclose(f);
}
我遇到了分段错误,请帮助。您可能应该试试这个,因为数组
数字
只有5
int main()
{
int n = 0, i = 0;
int numbers[5]; // assuming there are only 5 numbers in array input
FILE* f = fopen("Integers.txt", "r");
if (f != NULL)
{
for (i=0; i<(sizeof(numbers)/sizeof(int)); i++)
{
if (fscanf(f, "%d\n", &n) > 0)
numbers[i] = n;
else
break;
}
fclose(f);
}
}
intmain()
{
int n=0,i=0;
整数[5];//假设数组输入中只有5个数字
文件*f=fopen(“Integers.txt”,“r”);
如果(f!=NULL)
{
对于(i=0;i=0)
数字[i]=n;
其他的
打破
}
fclose(f);
}
}
数组numbers[5]
在堆栈中,超出边界访问它将损坏堆栈。尝试此操作
main()
{
FILE* f = fopen("Integers.txt", "r");
int n,i;
int numbers[5]; // assuming there are only 5 numbers in array input
for (i=0; i<5; i++)
{
fscanf(f, "%d", &n)
numbers[i] = n;
}
fclose(f);
}
main()
{
文件*f=fopen(“Integers.txt”,“r”);
int n,i;
整数[5];//假设数组输入中只有5个数字
对于(i=0;iIntegers.txt包含五个或更多?它有10000个整数这是链接numbers[i++]=n;
-->numbers[i++]=n;如果(i==5)break;
在最终迭代中,如果文件有精确的5个数字,则必须检查EOF
。否则,根据循环内的控制变量进行迭代。sizeof(numbers)
-->sizeof(numbers)/sizeof(*numbers)
falut@user3692108:检查fopen()
是否返回NULL。