C语言编程,变量赋值

一个文件里第一行是变量,第二行是对应变量的数值,用C语言编程赋值。

例如:
min max lad huv die how
2.1 3.4 5.3 7.3 7.4 3.5
中间都是空格
要求是能运行的,文件名字随便

#include<stdio.h>
#include<string.h>
#define NUM 6//变量数量
int main()
{
 int i;
 char name[NUM][10];
 FILE *fp = fopen("D:\\data.txt", "r");
 float min, max, lad, huv, die, how, temp;
 if (fp == NULL)
 {
  perror("Open file failure !!\n");
  return 0;
 }
 for (i = 0; i < NUM; ++i)
  fscanf(fp, "%s", name[i]);
 for (i = 0; i < NUM; ++i)
 {
  fscanf(fp, "%f", &temp);
  if (!strcmp(name[i], "min"))
   min = temp;
  else if (!strcmp(name[i], "max"))
   max = temp;
  else if (!strcmp(name[i], "lad"))
   lad = temp;
  else if (!strcmp(name[i], "huv"))
   huv = temp;
  else if (!strcmp(name[i], "die"))
   die = temp;
  else if (!strcmp(name[i], "how"))
   how = temp;
 }
 printf("%min = %0.2f\nmax = %0.2f\nlad = %0.2f\nhuv = %0.2f\ndie = %0.2f\nhow = %0.2f\n", min, max, lad, huv, die, how);
 fclose(fp);
 return 0;
}

追问

原谅我没说清楚,你事先是不知道文件里这些个变量的名字和数量的。

追答

不知道里面变量的名字
写程序的时候怎么写变量呢

追问

不用写变量啊,变量是字母,你就直接识别,赋值后输出就行。

追答#include<stdio.h> 
#include<string.h> 
int main()
{
 int i;
 char name[100];
 FILE *fp = fopen("D:\\data.txt", "r");
 float temp;
 if (fp == NULL)
 {
  perror("Open file failure !!\n");
  return 0;
 }
 fgets(name, 100, fp);
 for (i = 0; fscanf(fp, "%f", &temp) && name[i]; ++i)
 {
  while (name[i] != ' ' && name[i] != '\n')
   putchar(name[i++]);
  printf(" = %0.1f\n", temp);
 }
 fclose(fp);
 return 0;
}

追问

这样子的话,如果调用min,此时,min是没有数值的吧

追答

我没听懂你说什么,没有变量Min,他只是字符串

追问

你说的字符串就是我说的变量,因为后面的程序要调用这些个变量(字符串),同时它得有值,或者说它占的空间存储的是下面对应的数值,这样说应该就比较清楚了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-19
#include<stdio.h>
int main()
{
FILE* file;
char varn[30][30];
double var[30];
char ch;
int i=0,j=0;
file=fopen("123.txt","r"); //当前工作目录
while((ch=fgetc(file))!=10)
{
ungetc(ch,file);
fscanf(file,"%s",varn[i++]);
}
while(fscanf(file,"%lf",&var[j++])!=-1);
for(int i=0;i<j-1;i++)
printf("%s=%.1lf\n",varn[i],var[i]);
return 0;
}追问

两个while后语句怎么理解,还有ungetc是什么指令

追答

当没有读取到回车时就继续读取。把刚刚提取的字符退回流中。

第2个回答  2014-11-19
#include <stdio.h>

int main()
{
double min=2.1,max=3.4,lad=5.3,huv=7.3,die=7.4,how=3.5
return 0;
}