С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105

Дан текстовый файл. Выведите все строки, которые содержат хотя бы один пробел

20.05.2014, 21:45. Показов 3637. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текстовый файл. Выведите все строки, которые содержат хотя бы один пробел.
Формат входных данных
Во входном файле содержиться текст, состоящий из латинских букв, цифр, знаков препинания, пробелов и переводов строк.
Текст содержит хотя бы одну строку.
Длина каждой строки не превосходит 100 симвлов, количество строк в тексте не более 100.
Формат выходных данных
В выходной файл выведите все строки, содержащие хотя бы один пробел. Строки выводите в порядке их следования во входном файле.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
using namespace std;
int main(){
    ifstream filein("in.txt");
    ofstream fileout("out.txt");
    char a;
      while( !filein.eof() )
 
   {    filein>>a;
 
   if (isspace(a))
 
   {
   fileout<<a;
    }
    }
     filein.close(); 
     fileout.close();
return 0;
}
Подскажите почему не работает?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2014, 21:45
Ответы с готовыми решениями:

Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел.
Помогите новечку! Дан текстовый файл. Заменить в нем все подряд идущие пробелы на один пробел. Если можно в более простом варианте. ...

Проверить, все ли строки матрицы содержат хотя бы один положительный элемент
проверить , все ли строки матрицы содержат хотя бы один положительный элемент . если да, то изменить знаки всех элементов матрицы на...

Определить сумму элементов в тех строках, которые содержат хотя бы один нулевой элемент. 2)Поменять местами четные строки...
Дана целочисленная квадратная матрица. 1) Определить сумму элементов в тех строках, которые содержат хотя бы один нулевой элемент. ...

12
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
20.05.2014, 22:01
Потому что ты читаешь символы и выводишь те, которые пробелы.

Используй getline, например, и символьный буфер: Чтение текстовых файлов для новичков (getline)
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
20.05.2014, 22:18  [ТС]
Можете поправить код?
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
20.05.2014, 22:23
Не вижу смысла.
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
20.05.2014, 22:39  [ТС]
Правильно, зачем помогать.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
20.05.2014, 22:59
Не надо путать помощь и халяву.
Вы написали - "Подскажите почему не работает?"
Я подсказал, почему и дал ссылку, как сделать.
Теперь пишите: "исправьте".

Надо было сразу написать: "Я не понимаю, как решить задание и не хочу понимать. Напишите готовую программу, чтобы я мог тупо скопировать".
Это по крайней мере было бы честно, не вводило в заблуждение других и сэкономило бы этим другим время.
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
20.05.2014, 23:21  [ТС]
Напишите готовую программу, чтобы я мог понять.
0
2688 / 2260 / 244
Регистрация: 03.07.2012
Сообщений: 8,231
Записей в блоге: 1
20.05.2014, 23:24
Полагаю, не можете (судя по обилию созданных вами тем). Вижу, как вместо освоения С++ идет освоение техники вытягивания ответов
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
13.06.2014, 20:08  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    int k=0;
 
    ifstream file("file.txt");
    string a;
      while( !file.eof() )
 
   {    getline(file, a);
   k=strlen(a);//äëèíà ñòðîêè
   for (int i=0;i<k;i++)
   {
       if (a[i]==" ")
       {cout<<a<<endl;//âûâîäèì ðåçóëüòàò
       break;
       }
    }
   }
     file.close(); // çàêðûâàåì ôàéë
 
    return 0;
}
Добавлено через 19 секунд
почему возникает ошибка в 14 строке?

Добавлено через 6 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    int k=0;
 
    ifstream file("file.txt");
    string a;
      while( !file.eof() )
 
   {    file.getline(a, 100);
   k=strlen(a);//äëèíà ñòðîêè
   for (int i=0;i<k;i++)
   {
       if (a[i]==" ")
       {cout<<a<<endl;//âûâîäèì ðåçóëüòàò
       break;
       }
    }
   }
     file.close(); // çàêðûâàåì ôàéë
 
    return 0;
}
Или вот, 13 строчка ошибка, почему?
0
5 / 5 / 2
Регистрация: 05.08.2013
Сообщений: 14
13.06.2014, 20:19
Цитата Сообщение от filimoncc Посмотреть сообщение
почему возникает ошибка в 14 строке?
Функции нужна char-строка, а у тебя string
+ будь внимателен, когда одинарные кавычки ' ', а когда двойные " ".
0
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
13.06.2014, 20:39  [ТС]
Цитата Сообщение от leo_sgm Посмотреть сообщение
Функции нужна char-строка, а у тебя string
+ будь внимателен, когда одинарные кавычки ' ', а когда двойные " ".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
    int k=0;
 
    ifstream file("file.txt");
    char a;
      while( !file.eof() )
 
   {    getline(file, a);//÷èòàåì î÷åðåäíóþ ñòîêó èç ôàéëà
   k=strlen(a);//äëèíà ñòðîêè
   for (int i=0;i<k;i++)
   {
       if (a[i]==' ')
       {cout<<a<<endl;//âûâîäèì ðåçóëüòàò
       break;
       }
    }
   }
     file.close(); // çàêðûâàåì ôàéë
 
    return 0;
}
Все исправил, согласно вашим рекомендациям, но появляется ошибка 13 строке: [Error] no matching function for call to 'getline(std::ifstream&, char&)'

Добавлено через 2 минуты
Если исправить 13 строку на file.getline(a,100), то наверное посимвольное считывание произойдет и остальной код работать не будет?
0
5 / 5 / 2
Регистрация: 05.08.2013
Сообщений: 14
13.06.2014, 21:53
filimoncc,
Цитата Сообщение от filimoncc Посмотреть сообщение
Если исправить 13 строку на file.getline(a,100), то наверное посимвольное считывание произойдет и остальной код работать не будет?
У тебя "а" теперь всего лишь 1 символ, а не массив символов, т .е. не строка.
Цитата Сообщение от filimoncc Посмотреть сообщение
char a;
- Ты можешь вернуть тип string для "а", подключив <string> и использовав length() для нахождения длины. (впрочем, можно и свою функцию нахождения длины написать, если забыл и не помнишь вообще, что да как)
- или объявить "а" как массив символов. И использовать strlen()
1
1 / 1 / 2
Регистрация: 02.12.2013
Сообщений: 105
13.06.2014, 22:17  [ТС]
leo_sgm, используя string, пишет 'length' was not declared in this scope

Добавлено через 5 минут
В общем запустилась программа вот с таким кодом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
    int k=0;
 
    ifstream file("file.txt");
    string a;
      while( !file.eof() )
 
   {    getline(file, a);//÷èòàåì î÷åðåäíóþ ñòîêó èç ôàéëà
   k=a.length();//äëèíà ñòðîêè
   for (int i=0;i<k;i++)
   {
       if (a[i]==' ')
       {cout<<a<<endl;//âûâîäèì ðåçóëüòàò
       break;
       }
    }
   }
     file.close(); // çàêðûâàåì ôàéë
 
    return 0;
}
Все работает отлично, спасибо всем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.06.2014, 22:17
Помогаю со студенческими работами здесь

Разработка программного модуля вставки строки заданной длины, содержащую хотя бы один перенос, в текстовый файл
Желательно в программе Visual Studio c++. Тема:Разработка программного модуля вставки строки заданной длины, содержащую хотя бы один...

Скопировать из файла F1 в файл F2 все строки, которые не содержат цифры
Здравствуйте. #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; void main() {...

Что не так? Дан текстовый файл F. Переписать в другой файл G все строки, содержащие цифры.
#include &lt;iostream&gt; #include &lt;math.h&gt; using std::cin; using std::cout; using std::endl; int main (int argc, char**...

Найти сумму элементов в столбцах, которые содержат хотя бы один нулевой элемент.
Дана целочисленная прямоугольная матрица. Найти сумму элементов в тех столбцах, которые содержат хотябы один нулевой элемент.

Сумма элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент
Подскажите, как можно реализовать это задание: Сумма элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент? Как...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru