首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

EOF的施用

2012-08-26 
EOF的使用经常遇到getchar()!EOF来作为输入终结的判断条件。但其实对这还是不明白。我们要输入什么才算是EO

EOF的使用
经常遇到getchar()!=EOF来作为输入终结的判断条件。但其实对这还是不明白。我们要输入什么才算是EOF,才会退出循环 。请解释明白点。还有,getchar()源码去哪可看到?谢谢。

[解决办法]
Windows下 Ctrl+z
Linux下 Ctrl+d

C/C++ code
/****fgetchar.c - get a character from stdin**       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved.**Purpose:*       defines _fgetchar() and getchar() - read a character from stdin*       defines _fgetwchar() and getwchar() - read a wide character from stdin********************************************************************************/#include <cruntime.h>#include <stdio.h>/****int _fgetchar(), getchar() - read a character from stdin**Purpose:*       Reads the next character from stdin.  Function version of*       getchar() macro.**Entry:*       None.**Exit:*       Returns character read or EOF if at end-of-file or an error occured,*       in which case the appropriate flag is set in the FILE structure.**Exceptions:********************************************************************************/int __cdecl _fgetchar (        void        ){        return(getc(stdin));}#undef getcharint __cdecl getchar (        void        ){        return _fgetchar();}
[解决办法]
还是给个简单的

 distance.txt存储形式
北京 上海 天津 重庆 
北京 0 1088 118 1640 
上海 1088 0 953 1600 
天津 118 953 0 2067 
重庆 1640 1600 2067 0 
注意字符串之间用一个tab相隔
有问题问我
qq 810097972



#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define MAX 5
#define M 4

FILE *fp;
int i;
char city[4][10];
char ch[10];
char buf[100];

char* getName(int num);
int getNum(char *cityName);
void getdata(int** dist);
int ReadLine(FILE *fp);
char filename[23]="distance.txt";// 

void main()
{
FILE *fp;

if((fp=fopen(filename,"r"))==NULL)
{
printf("connot open!");
exit(0) ;
}


ReadLine(fp);
/************以下为测试*************/
for(int i=0;i<M;i++) //M为城市个数
printf("%s",getName(i)); //得到字符串 北京上海天津重庆
printf("\n");
printf("北京的编号:%d\n",getNum("北京"));//得到北京编号0
printf("上海的编号:%d\n",getNum("上海"));//得到上海编号1


}


int ReadLine(FILE *fp)
{
for(int i=0;i<M;i++)
{
fscanf(fp,"%s",ch);

strcpy(city[i],ch);
}
intlen = strlen (buf);
for(i=0;i<len;i++)
for(int j=0;i<10;j++)
buf[i]=city[i][j];

if(fp==NULL)
return -1;
}



char* getName(int num)
{
return city[num];

}


int getNum(char *cityName)
{
for(i=0;i<MAX;i++)
if(strcmp(cityName,city[i])==0)
return i;

}

热点排行