gpt4 book ai didi

c - 在 C 中读取每行有 2 个值的文本文件

转载 作者:行者123 更新时间:2023-11-30 20:18:56 25 4
gpt4 key购买 nike

我正在尝试编写一个从标准输入读取文本文件的程序,该文件每行有 2 个值,例如 300 1941, 301 1942一个值应该分配给变量adr,另一个值将分配给instr。我如何创建一个函数来打开文件,通过 while 循环从开头读取到 EOF,并通过每次迭代将这些值分配给变量?

到目前为止我做了什么

void load_program(struct machine *m){

unsigned int adr, instr;

//something that iterates through the file and adds the values to the
variables)

最佳答案

在 C 中,stdin 可通过全局 stdin 文件句柄使用,因此无需单独打开文件。

要从标准输入读取整数对,您可以简单地使用 fscanf(...) function ,例如:

// pairs.c
#include <stdio.h>

int main()
{
int addr, instr;
while (fscanf(stdin, "%d %d", &addr, &instr) == 2) {
printf("OK: addr=%d, instr=%d\n", addr, instr);
}
return 0;
}

您可以通过管道或重定向文件到已编译的程序,例如:

$ echo -e "11 22\n33 44\n55 66" | ./pairs
OK: addr=11, instr=22
OK: addr=33, instr=44
OK: addr=55, instr=66

$ echo -e "111 222\n333 444\n555 666\n777 888" > input.txt
$ ./pairs < input.txt
OK: addr=111, instr=222
OK: addr=333, instr=444
OK: addr=555, instr=666
OK: addr=777, instr=888

关于c - 在 C 中读取每行有 2 个值的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52507046/

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