【问题标题】:How to read ints from a txt file and save it to different consts in C?如何从 txt 文件中读取 int 并将其保存到 C 中的不同 const 中?
【发布时间】:2019-09-10 02:36:35
【问题描述】:

我发现了一些涉及读取 int 和输出它们的值的其他帖子,但是我想知道如何读取 int 并将它们存储到 const 中。

我已经定义了一些常量:

#define SEED 100
#define INIT_TIME 0
#define FIN_TIME 1000
#define ARRIVE_MIN 1
#define ARRIVE_MAX 5
#define QUIT_PROB 0.2
#define CPU_MIN 1
#define CPU_MAX 5
#define DISK1_MIN 1
#define DISK1_MAX 5
#define DISK2_MIN 1
#define DISK2_MAX 5

首先我想知道是否有一种方法可以将所有这些常量保存到 .txt 文件中并读取/使用它。

否则,我将如何将它们的值从文本文件存储到自身?

100
0
1000
1
5
0.2
1
5
1
5
1
5 

例如,将第一个数字 (100) 存储到 SEED,然后将 0 存储到 INIT_TIME,等等。

我尝试了另一篇堆栈帖子中的一些代码,我相信这些代码允许您将值存储到一行中的变量中,但我得到了一个 0 的无限循环。这是我试过的代码:

fscanf("index.txt", "%d %d %d %d %d %d %d %d %d %d %d %d”, &SEED, &INIT_TIME,&FIN_TIME,&ARRIVE_MIN,&ARRIVE_MAX, &QUIT_PROB,&CPU_MIN,&CPU_MAX,&DISK1_MIN,&DISK1_MAX,&DISK2_MIN,&DISK2_MAX)

【问题讨论】:

  • 必须在编译时分配常量。如果您需要在运行时设置值,那么这些就是变量,这里有很多关于将 int 读入 C 中的变量的现有帖子。
  • 您显示的代码有印刷错误(缺少“),不会产生无限循环。在这种情况下如何声明SEED等?
  • 纠正该错误。决定再次在我的帖子上输入它而不是打开我的项目。我将 SEED 等声明为 const ints

标签: c file-read


【解决方案1】:

您不能更改宏的值。在编译器处理一段源代码之前,所有SEED 的实例,例如,在您的源代码中将被替换为100。它们不是可以改变的变量;在您的代码编译后,它们甚至不再存在。它们只是在编译代码之前填充的占位符。

如果您真的想将这些宏存储在一个单独的文件中,您可以简单地将它们全部存储在一个 constants.h 文件中,并在您的代码中使用 #include "constants.h"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-06
    • 1970-01-01
    • 2013-02-27
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多