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

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

20.05.2014, 21:45. Показов 3679. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru