我正在研究C中的Linux项目。我正在创建一个数字流程,每个流程都以下列格式将其信息写入文件
PID | NAME | TYPE | GENOME
并且process.txt文件看起来像这样:
我在执行代码时提供的这些信息。我想要做的是让父进程在子执行结束时读取文件,并能够以这种方式将这些值拆分为数组:
pids[] = {567, 568, 569}
names[] = {A, N, Z}
type[] = {B, A, B}
genome[] = {20, 2, 12}
我一直在寻找一种方法来做这样的事情,但还没有发现任何特定的东西。可以使用可运行的代码。
答案 0 :(得分:1)
我不会帮助您完成整个代码,但这是一个提示。
读取每一行,然后使用sscanf
将值读入数组。
这是一个小代码:
char name;
char type;
int pid;
int genome;
sscanf(line, "%d %c %c %d", &pid, &name, &type, &genome);
答案 1 :(得分:0)
扫描或写入文件时,需要先打开它。 然后,您可以使用 fprintf 来编写要执行的操作,或使用 fscanf 来扫描数据。 要扫描您的文件,请输入以下代码:
int main(){
char name[4], type[4];
int pids[4], genome[4];
int i = 0;
FILE * file = fopen("process.txt", "r"); // "r" = read
while(fscanf(file, "%d|%c|%c|%d\n", &pids[i], name[i], type[i], &genome[i]) != EOF){
i++;
}
}