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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ilia53v
0 / 0 / 0
Регистрация: 18.11.2014
Сообщений: 5
#1

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

18.11.2014, 22:13. Просмотров 175. Ответов 0
Метки нет (Все метки)

Здравствуйте, у меня написан лексический анализатор, но вывод в файл 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++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;io.h&gt; int main() { double x1, x2, y1, y2, l,si,co; int ku, kuz, kuf, kel; ...

Лексический и синтаксический анализаторы - C++
здравствуйте.нужна помощь, по flex\bison, чтение драгон бука и поиска и google уже не хватает ,так что прошу помощи тут у Вас. лексер...

Лексический анализ. Таблицы идентификаторов - C++
Таблица идентификаторов строится лексическим анализатором или другим? таблица констант, точно лексическим, а как с переменными быть не...

Вывод в файл - C++
Здравствуйте уважаемые программисты, будьте добры, уделите пару минут своего времени на этот пост. Уже неделю парюсь с программой, в общем,...

вывод в файл - C++
Хочу осуществить вывод в файл с помощью функции. void Crypto::output(fstream ff, int ROUND, unsigned char *** uc)//УДАЛИТЬ { ...

Вывод в файл - C++
Программа сгенерировала 20 чисел от 1 до 20 в случайном порядке. Необходимо упорядочить по возрастанию и вывести на экран в первоначальном...

[C++] Вывод в файл. - C++
В доброго времени суток! Дело такое, нужно что бы в файл выводилось такая информация: sound_1 sound_2 sound_3 ... sound_n

Вывод в файл - C++
Ребят, как сделать что бы при выводе в файл черезcin&gt;&gt; числа выводились нормально, а не так: 1,725454e+010?????

Вывод в файл - C++
Всем привет, вот такая проблемка возникла. Хочу вывести матрицы в файл, но не получается...Файл оказывается пустым, как исправить?) ...

Вывод в файл - C++
# include &lt;fstream.h&gt; # include &lt;conio.h&gt; # include &lt;process.h&gt; void main() { clrscr(); ifstream File1(&quot;text1.txt&quot;); while...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru