Friday, March 16, 2012

Файлаас өгөгдөл унших

Өнөөдрийн хичээлээр бид .txt өргөтгөлтэй файлаас өгөгдөл уншиж түүнээсээ () хаалт, */+- операторууд болон тоог ялгаж харуулах юм.



#include<stdio.h>
#include<conio.h>
#include<fstream.h>
#include<iostream.h>
#include<string.h>
int checkHaalt(char c){
  if(c=='('||c==')') return 1;
  else return 0;
}
int checkOperator(char c){
  if(c=='+' || c=='-' || c=='*' || c=='/') return 1;
  else return 0;
}
int checkToo(char c){
  if(c>='0' && c<='9') return 1;
  else return 0;
}

FILE *in;
void main(){
  clrscr();
  if((in=fopen("text.txt","r"))==NULL) printf("Can not open file");
  else {
    char *line;
    char haaltuud[100]="\0";
    char operatoruud[100]="\0";
    int toonuud[100]={0};
    int tooNum=0,haaltNum=0,operatorNum=0;
    while((fscanf(in,"%s",line))!=EOF){
      printf("%s\n",line);
      int j=0;
      while(line[j]!='\0'){
if(checkHaalt(line[j])==1) haaltuud[haaltNum++]=line[j];
else if(checkOperator(line[j])==1) operatoruud[operatorNum++]=line[j];
else {
 int num=0;
 int fac=1;
 while(checkToo(line[j])) {
   num=num*fac+(line[j]-'0');
   fac=fac*10;
   j++;
 }
 toonuud[tooNum++]=num;
 j--;
}
j++;
      }
    }
    haaltuud[haaltNum]='\0';
    operatoruud[operatorNum]='\0';
    printf("%s\n",haaltuud);
    printf("%s\n",operatoruud);
  }
  getch();
}

No comments:

Post a Comment