我在为程序使用多维数组时遇到了一些麻烦。本质上,该程序使用 scanf 从重定向文件中读取用户 ID 和字符串。文件格式是一个三位数的用户 ID、一个空格和一串字符,表示每行测试中多项选择题的答案,例如。
111 dabac
102 dcbdc
251 dbbac
我遇到的问题是我不知道有多少用户,并且我无法多次读取文件数据。我试过使用
for (lineNumber = 0; lineNumber != -1; lineNumber++)
{
int result = scanf("%d ", &data);
if (result == EOF)
break;
for(i = 0; i < numProblems; i++)
{
scanf("%c", &input);
}
获取文件中的行数,然后设置数组的大小。然后将数组传递给另一个读取数据的函数,使用相同的 for 循环,但使用
input = arrayName[numProblems][lineNumber];
在第二个 for 循环中。我遇到的问题是 scanf 只能从文件中读取一次数据,并且在初始化之前我无法将数据存储在数组中,这需要我知道有多少用户。
按照我的设置方式,程序可以找到行数(用户)或将数据存储在数组中(如果我将大小设置为任意数字),但不能同时找到两者。
我必须使用scanf,因为文件名不是恒定的(这也是一个类......教授需要使用scanf),我不知道如何获取文件中的行数和仍然可以读取数据。如果有人知道在不使用 scanf 的情况下查找行数或读取数据两次的解决方法,我将非常感谢一些帮助。如果它有助于发布整个程序,我也可以这样做。
谢谢,
埃里克