用C语言读取文件

用C语言读取文件,c,file,input,C,File,Input,我和我的朋友正在做一个项目,我们需要从C语言的文件中读取输入 该文件如下所示: 15 25 200 3 10 17.99 22.99 109.99 100 2 4 5.99 99.99 20.00 49.99 10 10 10 10 10 10 10 10 10 10 3.99 5.99 7.99 8.00 5.00 5.00 5.00 6.00 7.00 9.99 5 我需要逐行读取文件,并将每个值设置为一个不同的变量。例如,第一行的第一个值必须设置为可变预售价格、第二个值doorPrice

我和我的朋友正在做一个项目,我们需要从C语言的文件中读取输入

该文件如下所示:

15 25 200
3 10
17.99 22.99 109.99
100 2 4
5.99 99.99 20.00 49.99
10 10 10 10 10 10 10 10 10 10
3.99 5.99 7.99 8.00 5.00 5.00 5.00 6.00 7.00 9.99
5
我需要逐行读取文件,并将每个值设置为一个不同的变量。例如,第一行的第一个值必须设置为可变预售价格、第二个值doorPrices和第三个值preSales。我需要帮助找出如何指定每行上的值的数量。例如,我如何告诉程序在第一行上获取三个值,但在第二行上仅获取两个值?第五行有四个值,依此类推

这是我的代码,但它只是崩溃了:

int main() {
    float preSalePrices, doorPrices;
    int preSales;
    FILE *fp;
    fp = ("C://Users//Jake//Desktop//Charity Ball//auction01.txt", "r");

    while(fscanf(fp, "%f %f %i", &preSalePrices, &doorPrices, &preSales) != EOF) {
        printf("%f, %f, %i", preSalePrices, doorPrices, preSales);               
    } 
}

我在互联网上到处找了找,找不到任何与此相关的具体信息。

如果你总是知道每行中的值的数量,你可以忽略行的末尾,逐个读取值


如果行尾很重要,最简单的方法是分别读取每一行(例如,
fgets
),然后从那里读取数据,使用
sscanf

不要像这样将整行扫描到变量中-一次读取每一行一个变量。读取一行,使用空格作为分隔符将其拆分。请参阅,您应该会收到编译警告,因为您的代码缺少对
fopen()
的调用。您还应该检查
fopen()
中的返回值,尽管测试对函数调用丢失没有帮助-
fp
获取指向
“r”
的非空指针。因为每个值必须放在单独的变量中(您确定吗?没有数组?),您必须在声明和对适当函数的适当调用中指定变量。您可能应该使用
fgets()
读取这些行,并使用
sscanf()
解析它们。每行都有一个单独的
sscanf()
来处理它(因为每次都要传递不同的变量)。您需要重新考虑您的代码结构,可能还有文件中的数据结构。路径分隔符不应该是双反斜杠吗<代码>\\而不是
/
?(当然还有单精度正斜杠)