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

Ввод с консоли в *char - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 71, средняя оценка - 4.82
Matrasa
 Аватар для Matrasa
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 40
06.12.2010, 09:00     Ввод с консоли в *char #1
Как ввести строку с консоли в переменную типа *char? Вот такой код не работает

C++
1
2
3
4
5
6
7
8
#include <iostream.h>
 
char *string[];
 
void main()
{
cin >> string;
}
Такой код тоже не работает.

C++
1
cin.getline(string, sizeof(string));
Пожалуйста подкажите как? Или можно каким нибудь образом в *char поместить значение простого char??
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2010, 09:00     Ввод с консоли в *char
Посмотрите здесь:

C++ Считывание в массив char с консоли
Ввод символов из консоли C++
C++ Ввод текста в консоли
C++ Ввод предложения с консоли
Ввод кириллицы в консоли C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
06.12.2010, 09:10     Ввод с консоли в *char #2
обычно делают:
C
1
2
char buffer[128];
sacanf("%s",buffer);
а если надо для char*
то тут твоя string это просто указатель на тип char не больше, никакой памяти под нее не резервируется, это надо делать самостоятельно:
C++
1
2
3
char *string = new char[128];
scanf("%s",string);
delete string;
вообще лучше использовать стандартный класс std::string (и не называть его именем переменные, компилятор, конечно же, разберется что к чему, но зачем лишний риск)
C++
1
2
3
4
5
#include <iostream>
#include <string>
std::string str(80);
std::cin.getline(str,80);
char c1 = str[0], c2=str[1];
Matrasa
 Аватар для Matrasa
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 40
06.12.2010, 09:31  [ТС]     Ввод с консоли в *char #3
Aye Aye, Спасибо тебе огромное! Но у меня возникла проблема

C++
1
2
3
4
5
6
7
8
9
char *string = new char[128];
char *string1 = new char[128];
char *string2 = new char[128];
cout << "Enter num 1\n";
scanf("%s",string1);
cout << "Enter num 2\n";
scanf("%s",string2);
string = Add2Roman(string1, string2);
cout << string;
Все работает, когда прогу запускаеш - черный экран с курсором, первая строчка cout не выводится. После ввода 1 значения, второй cout также не срабатывает. И только потом выводятся эти две строки и результат.

Пример.

XX
II
Enter num 1
Enter num 2
XXIIPress any key to continue_


Добавлено через 2 минуты
Гы, уже все сделал. Меня спас старый добрый printf(); Еще раз спасибо.
Aye Aye
 Аватар для Aye Aye
367 / 281 / 36
Регистрация: 17.12.2009
Сообщений: 567
06.12.2010, 10:34     Ввод с консоли в *char #4
все было потому, что cout и cin не синхронизированы с printf и scanf в DOS, это надо отдельно делать руками. незачто, у меня кстати и так все работает в linux, ибо в линуксе они пишут в одни и те же потоки, а как в DOS я не знаю.
Yandex
Объявления
06.12.2010, 10:34     Ввод с консоли в *char
Ответ Создать тему
Опции темы

Текущее время: 04:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru