c程序错误 找c高手帮忙检查下,已经指出哪里错了

来源:百度知道 编辑:UC知道 时间:2024/07/07 00:40:54
这个程序是读取一个文件,输出一个文件
比如文件infile.txt里面是
var x a z y
ini x -56
ini a 65
ini z 0
ini y 23
pri x a z y

程序如下
但是执行p3 -t infile.txt outfile.txt后
outfile.txt是
ini 100 0
ini 101 0
ini 102 0
ini 103 0
ini 100 -56
ini 101 65
ini 102 0
ini 103 23
100 0
101 0
102 0
103 0
问题出在那个pri语句
fprintf(outfile,"%s %d %d \n",a[1],vari[*cptr].addr,vari[*cptr].value); 请问这个vari[*cptr].value为什么会变?我应该怎么改才能正确输出呢?

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>

#define LINE_MAX 81

struct mem{
int addr;
int value;
};
typedef struct mem MEM;

int main(int agrv, char *argv[])
{
char c[LINE_MAX],*cptr;

const char *a[4]={"var","ini","pri",&

fprintf(outfile,"%s %d %d \n",a[1],vari[*cptr].addr,vari[*cptr].value); 请问这个vari[*cptr].value为什么会变?我应该怎么改才能正确输出呢?

那个Value是个int型的应该在 vari[*cptr].value 前加& 应为:
fprintf(outfile,"%s %d %d \n",a[1],vari[*cptr].addr,&vari[*cptr].value);