Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2012, 12:39   #1
Evielle
Пользователь
 
Регистрация: 23.04.2012
Сообщений: 22
По умолчанию В ячейку массива по слову, C++

В чем тут дело? Надо считать строку и по словам вывести.
Посимвольно вписываю слово в ячейку, а потом или ошибка с условием if, или что-то с выводом.

Код:
#include <iostream>
#include <cstdio>
#include <conio.h>
using namespace std;
int main()
{   
    char str[20], c;
    FILE *read;
    read = fopen("in.txt", "r");
    int i=0, j;
    while ((c = getc(read))!= EOF)
    {
          str[i] += c;   //так вообще можно?
          if (c == ' ')
          {
                str[i] += '\0';
                i++;
          }
    }
    for(j=0;j<=i;j++)
    cout<<str[j];
    getch();
}
Evielle вне форума Ответить с цитированием
Старый 25.04.2012, 12:58   #2
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Если доработать твой алгоритм то нужно сделать как то так:

Код:
#include <stdio.h>
#include <memory>


using namespace std;


int main()
{
    char str[20], c;
    FILE *read;
    read = fopen("1.txt", "r");
    int i=0, j;
    while ((c = getc(read))!= EOF)
    {
		  str[i++] = c;
		  if (c == ' '||c == '\n')
          {
			printf("%s\n",str);
			memset(str,0,sizeof(str));
			i=0;
		  }
	}
	printf("%s\n",str);
  return 0;
}
Не забудь про то, что если будет например 2 пробела и больше у тебя получаться пустые строки.
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 25.04.2012, 13:12   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

А чем не устраивает библиотечная strtok()?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 25.04.2012, 19:56   #4
Evielle
Пользователь
 
Регистрация: 23.04.2012
Сообщений: 22
По умолчанию

О, спасибо всем огромное!
Про strtok() читал, не совсем то, что нужно.

И тут я другой вариант набросал, он как раз мне и был нужен.
Но теперь проблема с условием и записью в файл. В чем дело? Я не догоняю что-то.


Код:
#include <iostream>
#include <cstdio>
#include <conio.h>
#include <stdio.h>
using namespace std;
int main()
{   
    string str[20], men;
    char c;
    FILE *read, *write;
    read = fopen("in.txt", "r");
    int i=0, j;
    while ((c = getc(read))!= EOF)
    {
          if (c == ' ')
          {
                str[i] += '\0';
                i++;
          }
          str[i] += c;
    }
    for(j=0; j<=i; j++)
    {
          if (str[j] == 'è' || str[j] == 'È')
          {
                 men = str[j-1];
                 str[j-1] = str[j+1];
                 str[j+1] = men;               
          }
    }
    fclose(read);
    write = fopen("out.txt", "w");
    for(j=0; j<=i; j++)
    printf(str[j],write);
    fclose(write);
    getch();
}

Последний раз редактировалось Evielle; 25.04.2012 в 22:16.
Evielle вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по Ключевому слову Applod Компоненты Delphi 0 22.11.2011 21:21
Копирование по слову Patriot_Rostov Microsoft Office Word 3 12.02.2011 20:44
Запись числа типа инт в ячейку двумерного массива типа char AxenicX Помощь студентам 1 25.09.2009 00:35
Вопрос по слову LIKE kaa1977 SQL, базы данных 6 24.09.2009 15:48
Привязка div к слову Mattuza HTML и CSS 1 07.08.2009 19:43