2014-10-07 2 views
-1

Я работаю над программой шифрования на уровне бит, у меня все работает, за исключением одной незначительной детали, мне нужно жестко кодировать мои неподписанные символы ... Мне бы хотелось сделать запрос пользователь для двух вещей:Ввод в Unsigned Char Array

-text, возьмите текст и поместите его в мой массив без знака (включая пробелы).

-Наберите цифры и поместите их в другой массив без знака (без пробелов).

Пример текстового массива:

вход Дано: привет мир

unsigned char text[11] = {'h','e','l','l','o',' ','w','o','r','l','d'} 

Пример нумеруются (примечание, я не хочу, '123' в массиве, но 123):

вход дано: 123 213 146 178

unsigned char text[4] = {123, 213, 146, 178} 

Обновление: Я получил текст вдаваясь в массиве и кодирование его просто отлично. Спасибо за помощь. Я займусь вставкой кодированных чисел завтра.

Обновление 2: я не спал ... Код работает над расшифровкой. Прерывает длинные предложения. завтра заглянет в него. Спасибо, парни! :)

+0

Я просто прошу указать правильное направление для использования. scanf(), очевидно, не является правильным способом. Мне просто интересно, как разбирать данные. Я новичок в C, когда начал писать java, поэтому я переделываю старый код, чтобы узнать. Я сделал более сложное сравнение бит. Я знаю, как запрашивать данные с помощью scanf и хранить их отдельно в массиве ... Я хочу взять все это и отделить его. – AiguoNgan7

+1

«scanf(), очевидно, это не так» - задаете ли вы вопросы или отвечаете им? scanf является одним из нескольких способов чтения информации ... нет очевидной причины, по которой вы не можете ее использовать, или даже неочевидной причины. –

+1

@VisioN Так что, если это была домашняя работа? Вопросы домашней работы приветствуются в SO. –

ответ

2

Обновление ответа gets() устарело.

Подсказка к одному из подходов, которые вы можете предпринять, чтобы решить вашу проблему.

Для первой части вопроса, используйте fgets().

Для второй части, используйте fgets(), чтобы получить весь ввод, разбить их на лексемы, используя пространство в качестве разделителей (strtok() будет делать) и использовать atoi(), чтобы получить его целочисленное значение и сохранить его в массиве.

+0

Спасибо, это тот тип комментария, который я искал. – AiguoNgan7

+4

@ AiguoNgan7: gets() не используется. его устарело .. вместо этого используйте fgets() , пожалуйста, отредактируйте .. – Haris

+1

Никогда не рекомендую 'get'. –

0

Я следовал за логикой Раунака Мухии, это сработало! " Обновление ответ, получает() является устаревшим.

намек на один из подходов, которые можно предпринять, чтобы решить вашу проблему.

Для первой части вас вопрос, использовать fgets().

Для второй части используйте fgets(), чтобы получить весь ввод, разбить их на маркеры, используя пробелы в качестве разделителей (strtok() будет делать) и использовать atoi(), чтобы получить его целочисленное значение и сохранить его в массиве.

Спасибо!

Смежные вопросы