С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 73, средняя оценка - 4.79
Deleter
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 35
#1

динамический массив строк - C++

19.02.2011, 02:12. Просмотров 10853. Ответов 6
Метки нет (Все метки)

Вот такое дело есть а как зделать так чтобы я мог ввести то количество строк что я хочю ? а не 3. Тоесть сделать динамический массив строк.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <conio.h>
using namespace std;
 
int main(){
int n; 
char Stroki[3][255];
for(int i=0; i<3; i++){
    cin.getline(Stroki[i], 255);
}
for(int i=0; i<3; i++){
    cout<<Stroki[i];
}
_getch();
return 0; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2011, 02:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос динамический массив строк (C++):

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

Динамический массив строк - C++
Мне нужно считать строки из файла но я не знаю сколько будет строк! и занести их в массив указателей на строки. чтобы было так *a =...

Динамический массив строк - C++
Здравствуйте нужна помощь по коду. Моя задача: создать динамический массив строк( по поводу терминов, возможно ошибка, но делать нужно то,...

Класс динамический массив строк - C++
Здравствуйте! Есть программа, создающая динамический массив строк. Помогите пожалуйста разобраться, что значат эти строки: (Если кому не...

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

Динамический массив для строк - C++
Добрый вечер! Мне нужно обработать текстовый файл, длину строк я заранее не знаю. Язык Си. Знаю, что нужно использовать malloc, а как...

6
Nameless One
Эксперт С++
5777 / 3427 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
19.02.2011, 04:13 #2
Определись, с каким языком ты работаешь (С/С++), и используй соответствующие средства выделения/освобождения памяти. В С++ это операторы new, delete, в С - функции выделения памяти malloc, calloc, alloca и функция освобождения памяти free.
0
Deleter
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 35
19.02.2011, 11:05  [ТС] #3
А можно в обоих вариантах покозать пример? С / С++ на том коде что я написал поменять его.
0
CyBOSSeR
Эксперт С++
2305 / 1675 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
19.02.2011, 11:12 #4
Deleter,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <cstddef>
#include <iostream>
#include <string>
 
int main() {
  const std::size_t size = 3;
  
  std::string array[size];
  
  for (std::size_t i = 0; i < size; ++i)
    std::getline(std::cin, array[i]);
    
  for (std::size_t i = 0; i < size; ++i)
    std::cout << array[i]<< std::endl;
    
  return 0;
}
0
Deleter
2 / 2 / 0
Регистрация: 10.01.2011
Сообщений: 35
19.02.2011, 12:42  [ТС] #5
Да ну вот так у меня есть только цифра сколько строк в массиве уже задана она 3 и я её могу менять и получится сколько угодно.
А я хочу
C++
1
2
3
4
5
6
7
8
9
int n;
cin >> n;
char Stroki[n][255];
For(int i =0; i<n; i++){
cin.getline(Stroki[i],255);
} 
For(int i =0; i<n; i++){
cout >> Stroki[i];
}
Както так я ввожу сколько мне надо строк их количество за ранее не задано.

Добавлено через 1 час 22 минуты
Хорошо так сейчас я сделал как думал только не понемаю почему когда я ввожу 5 ну чтоб было 5 строк он мне даёт ввести только 4.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int n, m = 100; cin >> n; // тут я ввожу 5
 
char **s = new char* [n];
for(int i = 0; i < n; i++ ){ s[i] = new char [m];}
for(int i = 0; i < n; i++ ){ cin.getline(s[i],m);} //Тут даёт 4 строки ввести 
for(int i = 0; i < n; i++ ){ cout<<s[i];} //И соответственно выводит только 4
 
_getch();
return 0; 
}
1
fasked
Эксперт С++
4951 / 2531 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
19.02.2011, 12:56 #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <algorithm>
#include <iterator>
#include <iostream>
#include <vector>
#include <string>
 
int main()
{
    std::vector<std::string> v;
    
    std::cout << "input strings, to end of enter input EOF" << std::endl;
 
    std::string s;
    while(std::getline(std::cin, s)) 
        v.push_back(s);
 
    std::cout << "\nCopied " << v.size() << " strings:" << std::endl;
    std::copy(v.begin(), v.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
 
    system("PAUSE");
    return 0;
}
Код
input strings, to end of enter input EOF
hello world!
hello user, how are you?
fine, thanks, how are you?
fine, thanks!
^Z

Copied 4 strings:
hello world!
hello user, how are you?
fine, thanks, how are you?
fine, thanks!
Press any key to continue . . .
0
Zero-cool
5 / 5 / 1
Регистрация: 05.01.2011
Сообщений: 30
16.04.2011, 17:38 #7
Цитата Сообщение от Deleter Посмотреть сообщение
for(int i = 0; i < n; i++ ){ cin.getline(s[i],m);} //Тут даёт 4 строки ввести
for(int i = 0; i < n; i++ ){ cout<<s[i];} //И соответственно выводит только 4
везде где
Цитата Сообщение от Deleter Посмотреть сообщение
i < n;
надо заменить на
Цитата Сообщение от Deleter Посмотреть сообщение
i <=n;
и будет счастье=)
0
16.04.2011, 17:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2011, 17:38
Привет! Вот еще темы с ответами:

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

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

Динамический массив строк фиксированной длины - C++
Добрый день! Помогите осилить простую задачу: Нужен массив переменного размера строк фиксированной длины. Пока что сделал такой...

Как создать динамический массив строк? - C++
Делаю лабораторную и пока только разбираюсь, как создать динамический массив строк Написал вот это, но при печати строки появляется...


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

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

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