0

我正在尝试从代码中打开两个文件,但在尝试从 first.txt 获取我的三个数字时遇到了麻烦,但它只打印第一个。我只需要帮助打印我的文本文件中的所有数字,因此无需完成我的整个程序,但欢迎提出建议:)!

    int main(int argc, char **argv)
    {
    int *number1Pointer = malloc(80 * sizeof(int));
    FILE *file1;
    //FILE *file2;
    file1 = fopen("first.txt", "r");
    //file2 = fopen("second.txt", "r");

    int read = fscanf(file1, "%d", number1Pointer);

    if(read != '\0')
    {
            printf("%d", &number1Pointer);
    }
    else
    {
            fclose(file1);

    }

    return 0;
    }
4

3 回答 3

1

int read = fscanf(file1, "%d", number1Pointer);只会scanf("%d", &num)从标准输入中读取一个“%d”。

您可以使用 while 循环或fscanf(file1, "%d%d%d", ...).

于 2013-02-26T00:03:04.483 回答
0

如果您需要读取 3 个数字,那么您可以尝试使用此代码

int read = fscanf(file1, "%d %d %d", &number1Pointer[0], &number1Pointer[1], &number1Pointer[2]);

变量 read 将具有读取的元素数或 EOF。因此,必须调整检查。

于 2013-02-26T00:03:33.307 回答
0

如果您的文件包含由空格分隔的三个数字 - 即21 32 32- 您需要一个与该格式匹配的格式字符串:

fscanf(file1, "%d %d %d", &number1Pointer[0], &numberPointer[1], &numberPointer[2]);

使用后请记住free()分配的变量。

于 2013-02-26T00:07:17.580 回答