使用 freopen 读取文件

Using freopen to read file

我有一个作业要实现二进制搜索和线性搜索。 "hard" 部分已完成,这两种方法都已实现并起作用。 我的教授希望我们测试包含大量整数的数组。他给了我们一个 .in 文件,其中输入了他想要的样式,我正在尝试使用 freopen 来读取该文件。

int main(int argc, const char * argv[]) {

freopen("input.in", "r", stdin);  // <-----

int n , s;

scanf("%d %d", &n, &s);

int myAr[n];
int i = 0;
while (i < n) {
    scanf("%d",&myAr[i]);
    i++;
}

int myAr2[s];
int j = 0;
while (j < s) {
    scanf("%d",&myAr2[j]);
    j++;
}
...

文件以一行中的 2 个数字开始,列表中的元素数以及您要在第一个列表中查找的元素数。

然后它读取包含列表 1 中所有数字的一行,然后下一行读取列表 2 中的所有数字

我无法让 freopen() 正常工作,我想知道是否有任何建议。

示例input.in 文件:

10 2
2 4 6 7 9 10 24 26 29 33
26 35

我的代码稍后会告诉我找到了 26 而没有找到 35。我的主要问题是在 main 中读取输入文件,而不是在终端中手动输入。请帮忙

我通过简单地使用 fscanf().

读取了 input.in 文件中的所有整数

这是我的代码。

int j;
FILE *fp;
fp = fopen("input.in", "r");
while( fscanf(fp,"%d",&j) > 0 )
{
    printf("%d\n", j);
}
fclose(fp);

输出是。