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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
#1

Осуществить ввод с клавиатуры в символьный массив со всеми пробелами, знаками препинания и т.д. - C++

03.04.2012, 16:37. Просмотров 1398. Ответов 2
Метки нет (Все метки)

1) Как осуществить ввод с клавиатуры в символьный массив со всеми пробелами, знаками препинания и т.д.?
2) И еще вопрос есть такой. Пытаюсь ввести данные из файла при помощи input.getline(string, size);, но компилятор уже когда надо выводить информацию на экран вместо всего, что надо выдает "Segmentation fault"(см. вложения). Что это такое и как от этого избавиться? Причем, если я строку сразу в массиве задаю или ввожу с клавиатуры(получается, что если не расправлюсь с 1) вопросом, то будет вводить с клавиатуры по одному слову), то программа работает. Далее привожу коды программы в рабочем состоянии и нерабочем. Ах да, и пришу в Geany под Ubuntu 10.04.

Рабочий:
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
28
29
30
31
32
33
34
35
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
 
int main()
{
    unsigned int size = 256;
    char string[] = "String in array", *e;
    unsigned int s = 0, c = 0;  
    ifstream input_a("/media/wind/forlabs/2_sem/l2/alfavit.txt");
    while(!input_a.eof())
    {
        input_a >> e;
        while(1)
        {
            s = strcspn(string, e);
            if(s != strlen(string))
            {
                string[s] = '+';
                c++;
            }
            else
            {
                s = 0;  
                break;
            }
        }
    if(c == 0)
        continue;
    cout << "Cимвол " << e << " встречается в строке " << c << " раз." <<endl;
    s = 0;
    c = 0;
    }
}
И так не работает:
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
28
29
30
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
 
int main()
{
    unsigned int size = 256;
    char string[size], *e;
    unsigned int s = 0, c = 0;  
    ifstream input_a("/media/wind/forlabs/2_sem/l2/alfavit.txt");
    ifstream input_s("/media/wind/forlabs/2_sem/l2/input.txt");
    if(input_a.bad() || input_s.bad())
        cout << "Файлы нерабочие, наверно!" << endl;
    input_s.getline(string, size);
    while(!input_a.eof())
    {
        input_a >> e;
        while(1)
        {
            s = strcspn(string, e);
            if(s != strlen(string))
            {
                string[s] = '+';
                c++;
            }
            else
            {
                s = 0;  
                break;
            }
        }
    if(c == 0)
        continue;
    cout << "Cимвол " << e << " встречается в строке " << c << " раз." <<endl;
    s = 0;
    c = 0;
    }
}
Заранее всем откликнувшимся спасибо
0
Миниатюры
Осуществить ввод с клавиатуры в символьный массив со всеми пробелами, знаками препинания и т.д.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2012, 16:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Осуществить ввод с клавиатуры в символьный массив со всеми пробелами, знаками препинания и т.д. (C++):

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

Как правильно считать текст из файла? Весь текст, со всеми знаками, пробелами - C++
подскажите, чет затупил как правильно считать текст из файла(весь текст со всеми знаками пробелами и т.д.), чтобы поработать с этим текстом...

Создать строку,ввод которой осуществляется с клавиатуры, состоящую из слов, разделенных пробелами - C++
Создать строку,ввод которой осуществляется с клавиатуры, состоящую из слов, разделенных пробелами.

Как осуществить случайный ввод элементов матрицы, чтоб не вводить с клавиатуры - C++
Как осуществить случайный ввод элементов матрицы, чтоб не вводить с клавиатуры. Сначала вводится колво строк и столбцов, затем сама матрица

Ввод данных/выделение памяти (динамический символьный массив) - C++
1. Если ли разница в таких двух вариантах объявления динамического символьного массива: а) char *string = (char*) malloc(N); б) char...

Шифр Цезаря проблемы со знаками препинания - C++
Реализую шифр цезаря, возникла проблема со знаками препинания, не выводятся как надо. Что нужно исправить? #include &lt;iostream&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
03.04.2012, 16:52 #2
Цитата Сообщение от Kirill Losev Посмотреть сообщение
1) Как осуществить ввод с клавиатуры в символьный массив со всеми пробелами, знаками препинания и т.д.?
getline

Добавлено через 2 минуты
Цитата Сообщение от Kirill Losev Посмотреть сообщение
input_a >> e;
е у вас указатель на char, просто указатель, без выделенной под него памяти. Так не делается, лучше сделайте e как char[256] например и в него читайте.
1
Kirill Losev
3 / 3 / 0
Регистрация: 01.10.2011
Сообщений: 249
03.04.2012, 18:19  [ТС] #3
Gepar, спасибо. все работает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2012, 18:19
Привет! Вот еще темы с ответами:

Зашифровать текст, записанный русскими буквами и знаками препинания - C++
Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно...

Удаление пробелов перед знаками препинания (нарисовать диаграмму конечного автомата) - C++
Удаление пробела, если он стоит перед запятой, точкой, точкой и запятой, восклицательным знаком, вопросительным знаком. Надо нарисовать...

Как в файл записать строку со всеми пробелами? - C++
Объясните мне, пожалуйста, как в файл записать строку со всеми пробелами. Использую char

Дан символьный файл, содержащий произвольный текст длиной более 5000 слов. Слова разделены пробелами и знаками препинания. Получить 100 наиболее часто - Pascal
НАРОД срочно нужно написать на паскале : Дан символьный файл, содержащий произвольный текст длиной более 5000 слов. Слова разделены...


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

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

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