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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подсчитать количество слов и вставить номер ! 
:(
    Опции темы
Bart_Simpson
  Дата 1.4.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот такая вот проблемка немогу понять как сделать подскажите идею есть файл 

3 aaaa bbbb cccccc
2 ddddd vvvvv aaaaaaaa

в каждой строке после слова с указанным номером вставить его номер. Поскажите как лучше найти номер слова и как вставить номер в строку???????????
PM MAIL ICQ   Вверх
Partizan
Дата 1.4.2007, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



1 посчитать количество раделителей...
2 сместить всё что после номера на нужное число позиций вправо
3 вставить номер 


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Bart_Simpson
Дата 1.4.2007, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



понятно что подсчитать колтчестов разделителей тока вот как я вот пытался и strtok и так вот пробывал не знаю именнно как в С записать!
Код

int OpenReadF (const char* FileName); 
const char endTerm='0';
char Seps[]=" ";
const int bufSize = 255;
char in_buff[bufSize];
const char FileName[]="in.txt";
int main(){
    
    FILE *fnPtr=fopen(FileName,"w");
    if(fnPtr == NULL)
    {
        cout << "File couldnt be open";
    }
    else {
        cout << "Enter ->\n";
    while (_getch()!=endTerm){    
        cin.getline(in_buff, bufSize);
        fprintf(fnPtr,"%s\n",in_buff);
    }}
    fclose(fnPtr);     
    OpenReadF(FileName);
    return 0;
}

int OpenReadF (const char* FileName) {
    char ReadBuff[100];
    char *tokenPtr;
    int num;
    int k,i=0;
    FILE *fnPtr=fopen(FileName,"r");
    if(fnPtr == NULL){
        cout << "File couldnt be open";
    }
    fscanf(fnPtr,"%d",&num);
    while (fgets(ReadBuff,100,fnPtr)){
    /*tokenPtr=strtok(ReadBuff,Seps);
    while (tokenPtr!=NULL){
        printf("%s\n",tokenPtr);
        tokenPtr=strtok(NULL,Seps);
    }*/
    cout << ReadBuff;
    printf("%d",num);
    }
    _getch();
    return 0;
}


PM MAIL ICQ   Вверх
Bart_Simpson
Дата 1.4.2007, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



пытась вот так написать и ашипка вылетает

Код

char ReadBuff[100];
for (i=0;i<100;i++){
        if (ReadBuff[i]==Seps) k++;


ашипка такая вот 

.\lr3.cpp(51) : error C2446: '==' : no conversion from 'const char *' to 'int'
        There is no context in which this conversion is possible
.\lr3.cpp(51) : error C2040: '==' : 'int' differs in levels of indirection from 'const char [2]'
PM MAIL ICQ   Вверх
Dov
Дата 1.4.2007, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

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



Bart_Simpson, номер - это однозначное число? И второе: покажи пример выходной строки.


--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Xenon
Дата 1.4.2007, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Я чего-то не очень понял что именно требуется. Во всяком случае какая разница какое число - можно же читать с использованием потоков - file >> num >> word >> word 2, так как тут все пробелами разделено.


--------------------
user posted image  
PM MAIL   Вверх
Bart_Simpson
Дата 1.4.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



да номер однозначное число!
выходная типа такая 

aaaa bbbb cccccc3
PM MAIL ICQ   Вверх
threef
Дата 1.4.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

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



продолжая Xenon
Код

while( !file.eof() )
{
   inFile>>textBuf;
   outFile<<textBuf<<++count;
}
remove(inFileName);
rename(outFileName,inFileName);
 
PM MAIL   Вверх
Bart_Simpson
Дата 1.4.2007, 12:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Пояснитье поподробней я пока не всё знаю!
PM MAIL ICQ   Вверх
Xenon
Дата 1.4.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



threef, Я бы еще добавил перед увеличением счетчика
Код

if (file.fail()) break;

Просто иначе будет лишние "слово" считываться.


--------------------
user posted image  
PM MAIL   Вверх
Bart_Simpson
Дата 1.4.2007, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



так не а если такая вот фишка будет

3 aaaa bbbb cccccc fffffff ddddddd


aaaa bbbb cccccc3 fffffff ddddddd

оно добавит???

и еще проблема не могу пробелы подсчиатть smile  smile  smile  ошибка и всё


PM MAIL ICQ   Вверх
Dov
Дата 1.4.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

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



Так попробывай.
Код
int main()
{
    FILE* file = fopen("test.txt","r");
    char buf[80];    
   
    if(file == NULL)
    {
        cout << "File couldnt be open";
        return 1;
    }    
    
    while(fgets(buf, 80, file))                  // читаем построчно в buf
    {
        int  i   = 0;
        char tmp = buf[0];                       // первый символ строки - это номер
        int  num = buf[0] - '0';                 // запоминаем его        
        
        while(num--)                             // какой номер, столько раз крутим цикл
        {        
            while(isspace(buf[i + 1]))           // пока в строке пробелы            
                buf[i++] = buf[i + 1];           // смещаемся влево          
            while(!isspace(buf[i + 1]))          // дошли до слова, пока слово, т.е. не пробелы    
                buf[i++] = buf[i + 1];           // смещаемся влево
        }
        buf[i] = tmp;                            // после смещения заносим символ с номером
        printf(buf);                                  
    }
    puts("");
    
    return 0;
}



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Bart_Simpson
Дата 1.4.2007, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Псибо большое действительно работает тока как сделать обработку если вдруг число больше чем слов в строке?
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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