gpt4 book ai didi

c - 如何使用 C 读取文件的每一行并将其存储在单独的变量中?

转载 作者:行者123 更新时间:2023-11-30 20:41:03 26 4
gpt4 key购买 nike

我的输入文件包含以下内容:

w 7b034d90
r 7b034c68
r df84d4

如何读取第一个字符并将其存储到一个变量中,并将第二个字符存储到另一个变量中?必须对多行输入执行此操作。例如,我需要将 w 存储到变量 A 中,将 7b034d90 存储到变量 B 中。必须对数千行执行此操作,并且每行的第一个字符将是 w 或 r。解决这个问题的最佳方法是什么?

这是我的代码:

struct MemBlock
{
char address
char ReadorWrite;
};

struct MemBlock blocks[100]


int main (int argc, char *argv[])
{
int line = 0;


static const char filename[] = "sampleTest.txt";
FILE *file = fopen ( filename, "r" );


if (fp == NULL)
{
printf ("Error opening the file\n\n'");
exit(EXIT_FAILURE);
} else {

if (argc == 3)
{
for (i=0,i<100,i++)
{
while ( fgets ( line, sizeof line, file ) != NULL )
{
r = fscanf(fp, "%s %s\n", blocks[i].ReadOrWrite, blocks[i].address);
line++;
}
}


fclose(fp);

}
}

最佳答案

如果您不知道自己有多少对,则需要通过某种机制来跟踪它们。一种是进行 malloc 并将它们链接到一个列表中。为此,请添加一个指向该结构的指针。

因此流程类似于下面的伪代码。需要结构体定义、错误代码、API 文件调用正确,并确保链表正确。

struct Memblock head;  
struct Memblock *oldp = &head;
main() {
fp = fopen(file);
while (fgets(line, fp, sizeof(line)-1) != NULL) {
if (sscanf(line, "%c %d", &flag, &address) == 2) {
sp = malloc(sizeof(struct));
sp->flag = flag;
sp->address = address;
sp->next = NULL;
oldp->next = sp;
}
}
}

关于c - 如何使用 C 读取文件的每一行并将其存储在单独的变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19016720/

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