Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2009, 11:41   #1
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
По умолчанию Помогите разобраться

Добрый день, подскажите как реализовать посимвольный ввод последовательности слов на Си, не могу никак понять...
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 11:47   #2
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

Код:
#include <stdio.h>

int main(void)
{
    char buffer[1000] // сюда будут записываться символы
    fgets( buffer, 1000, stdin ); // fgets - записывает символы из входного потока stdin
   
    return 0;
}

/*
теперь если ты введешь например строку Hello
то в buffer будут лежать символы
 {'H','e','l','l','o'}
*/

Последний раз редактировалось NiCola999; 06.12.2009 в 11:49.
NiCola999 вне форума Ответить с цитированием
Старый 06.12.2009, 11:53   #3
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
По умолчанию

А тогда еще вопрос у меня как нам хранить последовательность слов, используя двумерный массив.?
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 11:57   #4
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

ты имеешь в виду, если ввести два слова через пробел, то надо чтобы они были в двумерном массиве ?
Hello World
{"Hello", "World"} ?
NiCola999 вне форума Ответить с цитированием
Старый 06.12.2009, 11:59   #5
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
По умолчанию

Да иммено это я имел в виду..
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 12:15   #6
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

тогда можно как то так
Код:
char* words[10];
    int i=0;
    for(i=0; (scanf("%s", &words[i]) != EOF) || i<10; i++);

Последний раз редактировалось NiCola999; 06.12.2009 в 12:22.
NiCola999 вне форума Ответить с цитированием
Старый 06.12.2009, 12:17   #7
grave123
Пользователь
 
Регистрация: 06.12.2009
Сообщений: 15
По умолчанию

Вот за это спасибо, будем разбираться.)
grave123 вне форума Ответить с цитированием
Старый 06.12.2009, 12:24   #8
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

только на счет EOF я не уверен
NiCola999 вне форума Ответить с цитированием
Старый 06.12.2009, 12:26   #9
Darth.Vader
Пользователь
 
Аватар для Darth.Vader
 
Регистрация: 04.12.2009
Сообщений: 63
По умолчанию

может не EOF, а что-то вроде '\0' или даже просто 0 . Помню я как-то просто с нулём сравнивал - всё работало.
Не, ну можно извратиться, конечно, и написать: #define EOF 0
Darth.Vader вне форума Ответить с цитированием
Старый 06.12.2009, 13:46   #10
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Насчёт EOF там верно, когда происходит ошибка ввода то именно это и возвращает scanf, но вот в условии нужно вместо || поставить &&
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться! gameskiller Свободное общение 1 28.11.2009 18:57
Помогите разобраться! Knight_PS Помощь студентам 0 07.05.2009 17:34
помогите разобраться!!!!! Даринка Microsoft Office Excel 1 25.04.2009 00:19
Помогите разобраться! Кот Microsoft Office Excel 3 14.08.2007 19:48