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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
#1

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

20.05.2014, 21:45. Просмотров 804. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2014, 21:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Дан текстовый файл. Выведите все строки, которые содержат хотя бы один пробел (C++):

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

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

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

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

Скопировать из файла F1 в файл F2 все строки, которые не содержат цифры - C++
Здравствуйте. #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 все строки, содержащие цифры. - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; using std::cin; using std::cout; using std::endl; int main (int argc, char**...

12
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
20.05.2014, 22:01 #2
Потому что ты читаешь символы и выводишь те, которые пробелы.

Используй getline, например, и символьный буфер: Чтение текстовых файлов для новичков (getline)
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
20.05.2014, 22:18  [ТС] #3
Можете поправить код?
0
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
20.05.2014, 22:23 #4
Не вижу смысла.
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
20.05.2014, 22:39  [ТС] #5
Правильно, зачем помогать.
0
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
20.05.2014, 22:59 #6
Не надо путать помощь и халяву.
Вы написали - "Подскажите почему не работает?"
Я подсказал, почему и дал ссылку, как сделать.
Теперь пишите: "исправьте".

Надо было сразу написать: "Я не понимаю, как решить задание и не хочу понимать. Напишите готовую программу, чтобы я мог тупо скопировать".
Это по крайней мере было бы честно, не вводило в заблуждение других и сэкономило бы этим другим время.
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
20.05.2014, 23:21  [ТС] #7
Напишите готовую программу, чтобы я мог понять.
0
zer0mail
2354 / 1984 / 198
Регистрация: 03.07.2012
Сообщений: 7,117
Записей в блоге: 1
20.05.2014, 23:24 #8
Полагаю, не можете (судя по обилию созданных вами тем). Вижу, как вместо освоения С++ идет освоение техники вытягивания ответов
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
13.06.2014, 20:08  [ТС] #9
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
leo_sgm
5 / 5 / 1
Регистрация: 05.08.2013
Сообщений: 14
13.06.2014, 20:19 #10
Цитата Сообщение от filimoncc Посмотреть сообщение
почему возникает ошибка в 14 строке?
Функции нужна char-строка, а у тебя string
+ будь внимателен, когда одинарные кавычки ' ', а когда двойные " ".
0
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
13.06.2014, 20:39  [ТС] #11
Цитата Сообщение от 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
leo_sgm
5 / 5 / 1
Регистрация: 05.08.2013
Сообщений: 14
13.06.2014, 21:53 #12
filimoncc,
Цитата Сообщение от filimoncc Посмотреть сообщение
Если исправить 13 строку на file.getline(a,100), то наверное посимвольное считывание произойдет и остальной код работать не будет?
У тебя "а" теперь всего лишь 1 символ, а не массив символов, т .е. не строка.
Цитата Сообщение от filimoncc Посмотреть сообщение
char a;
- Ты можешь вернуть тип string для "а", подключив <string> и использовав length() для нахождения длины. (впрочем, можно и свою функцию нахождения длины написать, если забыл и не помнишь вообще, что да как)
- или объявить "а" как массив символов. И использовать strlen()
1
filimoncc
1 / 1 / 1
Регистрация: 02.12.2013
Сообщений: 104
13.06.2014, 22:17  [ТС] #13
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
13.06.2014, 22:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.06.2014, 22:17
Привет! Вот еще темы с ответами:

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

Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент - C++
Найти сумму элементов в тех столбцах, которые содержат хотя бы один отрицательный элемент. #include &quot;stdafx.h&quot; #include &lt;iostream.h&gt;...

Найти сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент - C++
1) Для заданной матрицы размером n а n найти такие к, что к-я строка матрицы совпадает с к-м столбцом. 2) Найти сумму элементов в тех...

Найти сумму элементов в тех строках которые, содержат хотя бы один отрицательный элемент - C++
Доброго времени суток, очень нужна помощь по одной задачке: Для заданной матрицы размером 8 на 8 найти такие К , что К-я строка матрицы...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru