while (fscanf() > 0) { n++; } 中>0是啥意思啊


 FILE* fp;
    fp = fopen("enemies.txt", "r");
    //把enemies.txt文件中的信息读进enemies数组中
    while (fscanf(fp, "%s %s", enemies[n][0], enemies[n][1]) > 0)
    {
        n++;
    }
    fclose(fp);

望采纳

  • 在 C/C++ 中,函数 fscanf() 用于从文件中读取数据。这个函数的第一个参数是文件指针,表示要读取数据的文件;其余的参数是格式化输入字符串,指定了如何读取文件中的数据。

  • 在这段代码中,fscanf() 函数的第二个参数是 "%s %s",表示读取两个字符串。这个函数会返回读取的字符串个数,如果返回值大于 0,则表示成功读取了一组数据;否则表示已经到达文件末尾或者读取过程出错。

  • 所以,while (fscanf(fp, "%s %s", enemies[n][0], enemies[n][1]) > 0) 中的 > 0 表示如果函数 fscanf() 返回的值大于 0,则循环会继续执行;否则循环结束。

  • 这段代码的作用是从文件 "enemies.txt" 中读取字符串,每次读取两个字符串,并把它们存储到数组 enemies 中。当函数 fscanf() 返回值小于等于 0 时,循环结束,表示文件已经读完或者读取过程出错。

就是从文件中逐行读取数据,每行是两个字符串,如果读取到数据,那么数组元素数量就加1
n表示数组元素的数量。fscanf是从文件读取一行数据

fscanf函数是有返回值的,返回值代表从流中接收到的参数的个数,如果大于0,说明接收到了参数,如果等于0,说明没有接收到参数,这表明已经读取到了EOF或者读取到的内容格式不正确(%s是不存在格式不正确一说的,%d,%f有可能会读到无法转换成数字的字符)