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

Как считать первое слово из каждой строки? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
22.09.2013, 15:11     Как считать первое слово из каждой строки? #1
Как считать первое слово из каждой строки из файла и записать в другой файл столбиком?
Пробовал использовать char, string, getline и много всего, но все не так. То считается один символ, то последнее слово, то первая строка, то еще что-то, но не то, что нужно. Прошу помощи. Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2013, 15:11     Как считать первое слово из каждой строки?
Посмотрите здесь:

C++ поменять местами первое и второе слово в каждой строке
C++ Переход на следующую строку, первое слово строки
C++ Считывается только первое слово из строки
C++ Для каждой строки файла переставить первое и среднее слово
Даны два слова.Верно ли,что первое слово начинается на ту же букву,на которую заканчивается второе слово (работа с символами строки) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
User409368
191 / 168 / 6
Регистрация: 09.09.2013
Сообщений: 524
22.09.2013, 15:15     Как считать первое слово из каждой строки? #2
1. читаем первое слово в строке
2. ищем и читаем символ '\n'
3. повтор
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 18:22     Как считать первое слово из каждой строки? #3
Как-то так:
C++
1
2
3
4
5
6
7
8
9
10
    ifstream fin("file.txt");
    if (fin)
    {
        string word;
        while (fin >> word)
        {
            // тут делаете с word, то что нужно
            fin.ignore(255, '\n'); // пропуск остальной части строки (255 - максимальное количество символов до конца строки)
        }
    }
Добавлено через 3 часа 0 минут
florgas, что молчите? Подошло?
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
22.09.2013, 18:51  [ТС]     Как считать первое слово из каждой строки? #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Как-то так:
C++
1
2
3
4
5
6
7
8
9
10
    ifstream fin("file.txt");
    if (fin)
    {
        string word;
        while (fin >> word)
        {
            // тут делаете с word, то что нужно
            fin.ignore(255, '\n'); // пропуск остальной части строки (255 - максимальное количество символов до конца строки)
        }
    }
Добавлено через 3 часа 0 минут
florgas, что молчите? Подошло?
Я не понимаю как работает .ignore и почему вы пишите fin, вместо in.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 18:57     Как считать первое слово из каждой строки? #5
Цитата Сообщение от florgas Посмотреть сообщение
Я не понимаю как работает .ignore
Коментарии в коде прочитали? Вот так и работает.
Цитата Сообщение от florgas Посмотреть сообщение
и почему вы пишите fin, вместо in.
А где у нас in?
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
22.09.2013, 19:08  [ТС]     Как считать первое слово из каждой строки? #6
Цитата Сообщение от alsav22 Посмотреть сообщение
Коментарии в коде прочитали? Вот так и работает.
А где у нас in?
Дак я понял, что она отбрасывает часть строки, я не пойму как и когда она это делает.
Тут все еще разбавляет ошибка типов.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
void main()
{
    string word;
    ifstream in("Input.txt");
    while (in >> word)
    {
        in >> word;
        ofstream out("Input.txt");
        out << word;
        out.close;
    }   
    in.close();
}
Я знаю, что код вообще не правильный, но я не понимаю, куда тут можно игнор дописать и как он сработает.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.09.2013, 19:11     Как считать первое слово из каждой строки? #7
Цитата Сообщение от florgas Посмотреть сообщение
но я не понимаю, куда тут можно игнор дописать и как он сработает.
3 пост.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 19:17     Как считать первое слово из каждой строки?
Еще ссылки по теме:

Строки. Перевернуть первое слово. C++
C++ Определить, содержит ли последнее слово строки букву, с которой начинается первое слово
Функция, выделяющая первое слово из строки C++

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

Или воспользуйтесь поиском по форуму:
florgas
 Аватар для florgas
5 / 4 / 0
Регистрация: 28.09.2010
Сообщений: 339
22.09.2013, 19:17  [ТС]     Как считать первое слово из каждой строки? #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <string>
 
using namespace std;
 
void main()
{
    string word;
    ifstream in("Input.txt");
    while (in >> word)
    {
        in >> word;
        ofstream out("Input.txt");
        out << word;
        out.close;
        in.ignore(255, '\n');
    }   
    in.close();
}
Исходя из третьего поста я могу предположить, что добавить ignore стоит вот здесь.
Но в данном коде скрылась ошибка типов.
Yandex
Объявления
22.09.2013, 19:17     Как считать первое слово из каждой строки?
Ответ Создать тему
Опции темы

Текущее время: 09:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru