Двумерный строковый массив
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Двумерный строковый массив Expand / Collapse
Автор
Сообщение
25.06.2007 9:39


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
Доброе время суток!
Подскажите, пожалуйста, как правильно создать и заполнить двумерный строковый массив!

Пробовал делать так:
#include

int main(){
using namespace std;
string A[3][2];
//char *temp;
int i;
for(i=0;i <= 2;i++){
printf("Enter string: ");
scanf("%s", &A[i][0]);
//printf("string: %s", A[i][0]);
printf("Enter string: ");
scanf("%s", &A[i][1]);
}

printf("%s", A[0][1]);

scanf("%s", A[i][0]);
return 0;
}

Есть двумерный массив AnsiString, куда все записывается. Но поставив прерывание и проверив в цикле, что же все-таки записывается, обнаружил, что массив остается пустым. А точнее изначально массив выглядит так:
Name Value
{{{ NULL },{ NULL }},{{ NULL },{ NULL }},{{ NULL },{ NULL }}}, а после заполнения массива строками:
Name Value
{{{ "" },{ "" }},{{ "" },{ "" }},{{ "" },{ "" }}}.. Т.е. в цикле, что не вводи, массив остается пустым.

Помогите, пожалуйста, разобраться с этим!

Заранее благодарен!
Сообщ. #914296
25.06.2007 21:52
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298, Visits: 12 500
нельзя использовать scanf с STL-строками, используейте cin, cout и др. STL потоки ввода/вывода
Сообщ. #914316
26.06.2007 0:40


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
А как быть, если я считываю из файла? Как мне считать с помощью cin строку из файла и разбить данные строки (как я делал это в предыдущей теме: fscanf("%s %s %s ...", A[i][0], A[i][1]....);)..?
Сообщ. #914320
26.06.2007 14:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298, Visits: 12 500
для этого используется input file stream class: ifstream
вот тут красивая диаграмка демонстрирующая возможности стандартных потоков ввода/вывода в STL: http://www.cplusplus.com/reference/iostream/

с уважением,
Владимир
Сообщ. #914335
26.06.2007 14:11
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

модератор
Last Login: 09.07.2008 2:17
Сообщ.: 1 298, Visits: 12 500
вот пример чтения текстового файла в духе STL (выглядит немного некрасиво из-за префиксов std::, от которых можно избавиться, используя директиву "using namespace std;" ):
http://www.decompile.com/cpp/faq/file_to_vector.htm
Сообщ. #914336
27.06.2007 0:45


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 12.06.2008 11:23
Сообщ.: 96, Visits: 535
Огромное спасибо!
Очень полезные статьи! Как раз то что мне необходимо!
Сообщ. #914354
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 1:23