Официальный сайт студ.городка НГТУ
Программирование и БД » C++ нужна помощь 

#1  09.12.09 19:47

C++ нужна помощь

как Char'ом пользоватся? т.е как вводить в него слова, строки

Offline

#2  09.12.09 22:23

Re: C++ нужна помощь

Код: cpp:

#include <iostream>
using namespace std;
 
char s[30];
cin >> s;
cout << "Вы ввели строку: " << s << endl;

Offline

#3  10.12.09 01:54

Re: C++ нужна помощь

лучше string юзай. Удобнее будет.

Offline

#4  10.12.09 02:26

Re: C++ нужна помощь

char* string = new char[100]; // выделение памяти под строку в 99 символов + символ
                                              // конца строки
std::cin >> string; // ввод строки с клавы

cin из библиотеки iostream

Исправлено endorfin (10.12.09 02:27)

Offline

#5  10.12.09 14:30

Re: C++ нужна помощь

спасибо, разобрался -)

Offline

#6  10.12.09 15:04

Re: C++ нужна помощь

Смайлек написал(а):

Код: cpp:

#include <iostream>
using namespace std;
 
char s[30];
cin >> s;
cout << "Вы ввели строку: " << s << endl;

почему когда я ввожу слова через пробел, например: aaaaaa bbbbb ccccc
он выводит только аааааа

Offline

#7  10.12.09 21:17

Re: C++ нужна помощь

а через scanf как это реализовать?

Offline

#8  10.12.09 21:35

Re: C++ нужна помощь

Код: cpp:

char s[30];
scanf("%s", s);
printf("Ваша строка: %s", s);

но у scanf тот же недостаток что и у cin.operator>>() - читает лишь до первого пробела. Используй gets(s):

Код: cpp:

char s[30];
gets(s);
printf("Ваша строка: %s", s);

Ну и позволю себе немного поворчать по поводу того, что по крайней мере 2 решения по сабжу можно найти ну просто в абсолютно любом справочнике, книге или сайте, посвященном С/С++

Исправлено Смайлек (10.12.09 21:41)

Offline

#9  10.12.09 21:52

Re: C++ нужна помощь

Смайлек написал(а):

Код: cpp:

char s[30];
scanf("%s", s);
printf("Ваша строка: %s", s);

но у scanf тот же недостаток что и у cin.operator>>() - читает лишь до первого пробела. Используй gets(s):

Код: cpp:

char s[30];
gets(s);
printf("Ваша строка: %s", s);

Ну и позволю себе немного поворчать по поводу того, что по крайней мере 2 решения по сабжу можно найти ну просто в абсолютно любом справочнике, книге или сайте, посвященном С/С++

ооо, спасибо работает -) ворчание принято к сведению ;)

Offline

#10  21.12.09 01:00

Re: C++ нужна помощь

Mozg_RUS написал(а):

Код: C++:

char *c="This is"; //указатель на строку

Нельзя так с указателями обращаться!
Лучше так:

Код: C++:

char *c;
strcpy(c,"This is");

Offline

#11  21.12.09 01:53

Re: C++ нужна помощь

Binni написал(а):

Нельзя так с указателями обращаться!

почему нельзя, нормальный синтаксис, инициализация указателя. то как ты написал вызывает доп. расходы в рантайме на копирование строки а так сразу адрес в него записывается на этапе компиляции

Offline

#12  21.12.09 01:55

Re: C++ нужна помощь

да и тем более данный способ вывалит ошибку, так как указатель нужно инициализировать т.е. выделить память
char*c=new char[256];
strcpy(c,"sss");

Исправлено Ravager (21.12.09 01:55)

Offline

#13  21.12.09 16:01

Re: C++ нужна помощь

NigNet написал(а):

но у scanf тот же недостаток что и у cin.operator>>() - читает лишь до первого пробела. Используй gets(s):

пффф.. scanf по дефолту читает до ' '. можно установить чтобы до \n читал.
если уже начали про cin >>. то у класса cin есть метод getline(char *str, int размер).

Binni написал(а):

Нельзя так с указателями обращаться!

+1 к Ravager'у

Offline

#14  21.12.09 23:05

Re: C++ нужна помощь

вообще это в любом факе по с++ написано/

Исправлено zigma (22.12.09 13:35)

Offline

#15  22.12.09 01:40

Re: C++ нужна помощь

потокового ввода/вывода нет в си

Offline

#16  22.12.09 13:35

Re: C++ нужна помощь

исправил)

Offline

Программирование и БД » C++ нужна помощь 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.058 сек.
Выполнено 14 запросов.