Форум программистов, компьютерный форум CyberForum.ru

Лексический анализатор (вывод в файл) - C++

Восстановить пароль Регистрация
 
ilia53v
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 2
18.11.2014, 22:13     Лексический анализатор (вывод в файл) #1
Здравствуйте, у меня написан лексический анализатор, но вывод в файл 2 происходит посимвольно (т.е по одному символу в каждой строке),как сделать так,чтобы лексемы выводились целиком? Всем тем, кто поможет огромное спасибо!

#include "stdafx.h"
#include <cstdio>
#include "conio.h"
#include <cctype>
#include <cstdlib>
#include <string>
#include <iostream>
using namespace std;

int main()
{
int i;
FILE *f1,*f2;
f1=fopen("C:/1.txt","r");
f2=fopen("C:/2.txt","w");
int ch[25];

for(i=0;i<25;i++)
{
while ((ch[i]=getc(f1)) !=EOF)
{
if(isalpha(ch[i]))
fprintf(f2,"%c %d \n",ch[i],2);
else
{if(isdigit(ch[i]))
fprintf(f2,"%c %d \n",ch[i],1);
else
{if(ch[i]==':')
fprintf(f2,"%c %d \n",ch[i],5);
else
{if(ch[i]=='-'||'+'||'*'||'/')
fprintf(f2,"%c %d \n",ch[i],9);
else
{if(ch[i]==';')
fprintf(f2,"%c %d \n",ch[i],5);
else
{ if(ch[i]=='-')
fprintf(f2,"%c %d \n",ch[i],5);
else
{ if (ch[i]==',')
fprintf(f2,"%c %d \n",ch[i],5);
else
{ if (ch[i]=='^')
fprintf(f2,"%c %d \n",ch[i],5);
else
{ if (ch[i]=='STEP')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='FOR')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='AND')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='OR')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='GOTO')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='TO')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='NOT')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='=')
fprintf(f2,"%c %d \n",ch[i],9);
else
{ if (ch[i]=='IF')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='THEN')
fprintf(f2,"%c %d \n",ch[i],4);
else
{ if (ch[i]=='LET')
fprintf(f2,"%c %d \n",ch[i],4);
/* else
if (ch[i]=='INPUT')
fprintf(f2,"%c %d \n",ch[i],4);*/
else
{ if (ch[i]=='NEXT')
fprintf(f2,"%c %d \n",ch[i],4);
/* else
if (ch[i]=='PRINT')
fprintf(f2,"%c %d \n",ch[i],4);*/
else
{ if (ch[i]=='<')
fprintf(f2,"%c %d \n",ch[i],9);
else
{ if (ch[i]=='< >')
fprintf(f2,"%c %d \n",ch[i],6);
else
{ if (ch[i]=='(')
fprintf(f2,"%c %d \n",ch[i],6);
else
{ if (ch[i]==')')
fprintf(f2,"%c %d \n",ch[i],6);
else
{ if (ch[i]=='\n')
fprintf(f2,"%c %d \n",ch[i],3);
else printf("недопустимый символ языка - %c \n",ch[i]);
}}}}}}}}}}}}}}}}}}}}}}}}}}
fclose(f1);
fclose(f2);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2014, 22:13     Лексический анализатор (вывод в файл)
Посмотрите здесь:

C++ лексический анализатор на С++
Лексический анализатор C++
C++ Лексический анализатор текста
C++ Лексический анализатор
C++ лексический анализ
C++ Составить автоматную грамматику и на её основе реализовать лексический анализатор языка
Лексический анализатор языка лисп C++
Лексический анализатор. Вывести типы констант, идентификаторов и специальных знаков C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 18:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru