Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [с++]строки и файлы, помогите найти ошибки 
V
    Опции темы
girlsbest
Дата 2.1.2009, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



как правильно считать сроку из текстового файла и поделить ее на лексемы, и что бы пробелы сохранялись...
считать поделить на лексемы и записать в массив...

я так написала
Код

#include <iostream>
using namespace std;
int main ()
{
    char *stroka=new char[500];
    int i=0,j=0;
    const int nmax=500;
    char *ptr;
    char *a[nmax];
    FILE* in;
    if(!(in=fopen("1.txt","rt")))
    {
        printf("Open file failed\n");
        return 0;
    }
    fgets(stroka,500,in);
    while(!(feof(in)))
    {
        ptr=strtok(stroka," ");
        a[i]=ptr;
            i++;
            j++;
        while(ptr!=NULL)
        {
            
       fgets(stroka,500,in);
       ptr=strtok(NULL," ");
       a[i]=ptr;
       i++;
       j++;
      
        }
    }
      setlocale (LC_ALL,".1251");
    for (i=0; i<j-1; i++)
    {
       printf("% s",a[i]);

    }
    return 0;
    fclose(in);
}


может это не совсем коректно

Это сообщение отредактировал(а) girlsbest - 2.1.2009, 20:06
PM MAIL   Вверх
Jater
Дата 2.1.2009, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 1.11.2008

Репутация: 1
Всего: 1



Код
#include <iostream>
using namespace std;
int main ()
{    setlocale (LC_ALL,".1251");
    char *stroka=new char[500];
    int i=0,r=0;
    char *ptr;
    FILE* in;
    char b[50][101];
    char seps[] = " \r\n";  //разделители
    if(!(in=fopen("1.txt","rt")))
    {
        printf("Open file failed\n");
        return 0;
    }
    while((fgets(stroka,255,in))!=NULL)
        {
            ptr=strtok(stroka,seps);
            while(ptr!=NULL)
            {    
                strcpy(&b[r][0],ptr);  
                r++;
                ptr=strtok(NULL,seps);                                                   
            }   
        }
      for(i=0;i<r;i++)
        cout<<&b[i][0]<<endl;
    return 0;
    fclose(in);
}




Цитата

в файле:  s sdks sahdg jhag aas
  sa
  d sadgashgdhsjag 
  as
   sd
   asdasudaslkudasljdaslk         v



получилось:
Цитата

s
sdks
sahdg
jhag
aas
sa
d
sadgashgdhsjag
as
sd
asdasudaslkudasljdaslk
v
Для продолжения нажмите любую клавишу . . .

PM MAIL   Вверх
girlsbest
Дата 2.1.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



спасибо

Добавлено через 1 минуту и 59 секунд
а так что бы пробелы сохняло после считывания...можете написать?
PM MAIL   Вверх
Jater
Дата 2.1.2009, 20:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 1.11.2008

Репутация: 1
Всего: 1



пробелы-это в вашем понимании пустые строки должны быть,типа вот так ?
Цитата

s
sdks
sahdg
jhag
aas

sa

d
sadgashgdhsjag


as

sd

Для продолжения нажмите любую клавишу . . .



или что значит чтобы пробелы сохраняло?

Это сообщение отредактировал(а) Jater - 2.1.2009, 20:45
PM MAIL   Вверх
girlsbest
Дата 2.1.2009, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 19.10.2008

Репутация: нет
Всего: нет



не не совсем...спасибо, я сама уже разобралась...

Добавлено через 6 минут и 49 секунд
это когда массив в одну строку выводишь...и получаешь...аплр п пл п н, ну тоесть как в исходном файле вместе с разделителями
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.