2005年05月12日

      我们今天期中考试考完了,结果出来了。

哎!我真的受了很大的打击,我自认为是班上的小强人,可是,我真的不敢相信,我竟然会落到要从最后开始数,才能数到我的名字,我真的不堪忍受。也许我该奋进了,不是吗?

     以后,FIGHTING!FIGHTING!FIGHTING!

2005年05月10日

#include"stdio.h"

void sel()

{ char ch;

scanf("%c",&ch);

print("sno cno");

……………………………

}

void main()

{

char cha;

scanf("%c",&cha);

if(cha==’a')

{

sel();

}

}

执行时,发现输入a后,就直接打印sno cno 了,后来经过调试才发现子程序中的ch已经有值了是’\n’

为什么呢?看来还有必要好好探索一下。

这几天把老师布置的一个程序写完了,但是发现了个奇怪的问题。同样的是读取一个文件的一段代码,但是在不同的程序中执行的结果却完全不同,这是搞不懂。

文件的内容是:

95001 李勇 男  1977-5-1 23 95002 computer
95002 刘晨 女  1976-4-8 25 95002 computer
95003 李鸣 女  1977-2-2 26 95003 english
95004 王敏 女  1977-3-5 20 95003 english
95016 金瑾 女  1978-11-1 23 95016 chemis
95018 汪劲 男  1977-4-6 21 95018 commun
96001 张立 男  1978-6-2 18 96001 maths
96002 柳风 男  1979-8-18 16 96001 maths

#include "stdio.h"
#include "string.h"
typedef struct {
 
 char sno[6];
 char sname[10];
 char ssex[2];
 char sbirth[19];
 int spre;
 char smonitor[6];
 char sdept[10];
}S;

void proj()
{
  char file[10];
  FILE *fp;
  int i=0;
  printf("s or sc?\n");
  scanf("%s",file);

  if(strcmp(file,"s")==0)
  {
   
   S s[8];
        
         if(fp=fopen("stu.txt","r"))
   {
           for(i=0;i<8;i++)
     {
   
         fscanf(fp,"%s %s %s %s %d %s %s",s[i].sno,s[i].sname,
       s[i].ssex,s[i].sbirth, &s[i].spre,s[i].smonitor,s[i].sdept);
   printf("%s",s[i].ssex);
   
     }
   }
         fclose(fp);

}

#include "head.h"
void main()
{

 proj();

}

此时输出的是年龄和出生年月日合在一起的字符串,但是我要求输出的只有年龄。在这个程序中:

#include "stdio.h"
typedef struct {
 
 char sno[6];
 char sname[10];
 char ssex[4];
 char sbirth[19];
 int spre;
 char smonitor[6];
 char sdept[10];
}S;


void read(FILE *fp)
{                int i=0;
                 S s[8];
 
              for(i=0;i<8;i++)
     {
   
         fscanf(fp,"%s %s %s %s %d %s %s",s[i].sno,s[i].sname,
       s[i].ssex,s[i].sbirth, &s[i].spre,s[i].smonitor,s[i].sdept);
      printf("%s",s[i].ssex);
   
   
     }
}

main()

{

FILE *fp;

read(fp);

}

输出的只有年龄,真不知道为什么,头痛啊。