Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > scanf


Автор: nikatin 24.6.2009, 10:52
как сделать чтобы чтобы читало не цылыи текст а до пробела и в память сохронялоси до пробела текст[1] после пробела и до следуишего текст[2] и так все слова тоисть чтобы разделил предложение на слова каждый текст[*] 1 слово


вот код читает веси текст

Код

  string line;
  ifstream myfile ("./src/rewrite");
  if (myfile.is_open())
  {
    while (! myfile.eof() )
    {
      getline (myfile,line);
      cout << line << endl;
    }
    myfile.close();
  }


надо чтото типо этого это как я себе представляю ток не зднаюй как написати в си++

Код

read rewrite
 if find " " set name up to " " text[0]
  then read rewrite if find " " set name up to " " text[1]
    if text[1] == text[0] find next " " set name up to " " text[1]

 
вот както так представляю ^-^ 

Автор: xvr 24.6.2009, 11:02
Ничё не понял  smile Надо прочесть слова, разделенные пробелами c с помощью scanf? 
Код

char buf1[1024], buf2[1024];
scanf("%s %s",buf1,buf2);


Добавлено через 4 минуты и 23 секунды
Пишешь scanf, в примере чистые плюсы  smile 
Код

  string line;
  ifstream myfile ("./src/rewrite");
  if (myfile.is_open())
  {
    while (! myfile.eof() )
    {
//      getline (myfile,line);
      myfile >> line;
      cout << line << endl;
    }
    myfile.close();
  }

Автор: zim22 24.6.2009, 11:06
Цитата(xvr @  24.6.2009,  11:02 Найти цитируемый пост)
Ничё не понял

это потому что запятых нет в предложении smile

nikatin, зачем вам scanf? у вас код С++, а не С. 
вместо getline используйте >>
Код

while (myfile >> word );


Автор: nikatin 24.6.2009, 11:11
не обязателино сканф.. просто он мне покозался самым простым чемто вчём я смогу разобратся.
да разделить веси текст на слова
чтобы затем можно было пословам искать

Добавлено через 3 минуты и 54 секунды
Цитата(zim22 @ 24.6.2009,  11:06)
Цитата(xvr @  24.6.2009,  11:02 Найти цитируемый пост)
Ничё не понял

это потому что запятых нет в предложении smile

nikatin, зачем вам scanf? у вас код С++, а не С. 
вместо getline используйте >>
Код

while (myfile >> word );

я не смог разобратся он или четает веси всё предложение за рас или же до пробела.. запутался решыл попробовать чтото простое чтобы суметь разобрать

Добавлено через 7 минут и 4 секунды
вот что я на момент написал ^^

сам не поиму что написал 

в консоле выдаёт последнее слово из текста))))
а мне надо веси текст разделить на слова чтобы в уме они у него были а потом чтобы можно было провесть лёхкий не запутаный поиск по словам


Код


#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
  char str [80];
  string line;
  string word;
  ifstream myfile ("./src/text.txt");
  ofstream myfile2 ("./src/test.txt");
  printf ("Ce litera schimbam?: ");
  scanf ("%s",str);
  if (myfile.is_open())
  {

      while (myfile >> word );
    {
      getline (myfile,word);
      cout << word << endl;
    }
    myfile.close();
  }

  else cout << "Unable to open file";

  return 0;
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)