gpt4 book ai didi

C 编程 - 从文本文件中扫描信息以用于程序

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:48 25 4
gpt4 key购买 nike

我长期关注 Stack Overflow,但这是我的第一个问题。因此,如果我遗漏了任何重要的细节或信息,请原谅并纠正我!

我刚开始用 C 编程。我正在尝试创建一个程序,该程序将在运行时接收我通过控制台指定的文本文件并使用 stdin。此文本将按以下方式格式化:

    10 2 2012
3 765 821 764
5 856 976 847 757 789
4 838 842 832 815
4 809 815 789 765

前 3 个数字是月、日和年。之后,以下行包含数据。每行的第一个数字代表其后的数据读数量。我需要根据每行后第一个数字后面的数字进行计算。到目前为止,我一直在使用 scanf 函数获取日期数据并将其作为标题打印出来。

#include <stdio.h>

int main()
{

// Define Variables

int month;
int day;
int year;


// Scan text file for month, day and year

scanf("%d", &month);
scanf("%d", &day);
scanf("%d", &year);

// Print out date and headers

printf("\nTest date: %d/%d/%d", month, day, year);
printf("\nLED Lumens\n");
return 0;
}

我需要能够获取每行中第一个数字之后的数字。然后我将使用这些数字来计算各种东西(我不需要帮助)。我的问题是最好的方法是什么?我的想法是使用 scanf 获取行中的第一个数字,然后循环直到达到行中的值数,每次扫描该数字。

因此,如果我扫描第一个数字是 3,我将循环扫描接下来的 3 个数字。然后我将对这些数字执行计算,然后对每一行重复。

这样做是否正确,是否可行?主要是我想知道扫描文本中的数据是如何工作的。每次我使用 scanf 函数时,它只是获取我的文本文件中的下一个数字。无论我的数据在下一行,它都有效吗?

另请注意,我还没有学习任何处理文本文件的高级函数。因此,我坚持使用 scanf 来获取数据。

谢谢!如果我需要更多详细信息或说明,请告诉我。

更新

感谢所有回复的人。我很高兴解释 scanf 如何在文本文件中工作。我能够让我的程序运行。至于大家也回复了我可以使用的不同功能和方法,谢谢!我一定会在某个时候尝试一下。我意识到可能有比 scanf 函数更容易和更好的方法来完成我的任务。

最佳答案

您描述的算法应该有效...只要输入文件格式正确并且您测试不同scanf 的结果在文件末尾停止(返回值 <= 0 )。

要获得更强大的功能,您应该遵循 chux 的建议并:- 首先阅读完整行 fgets- 然后使用 sscanf您描述的方式,但至少您确定正确地进行了行同步并且能够检测到输入文件中的缺失数字。

关于C 编程 - 从文本文件中扫描信息以用于程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26248116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com