Чтение строк в C - PullRequest
       2

Чтение строк в C

0 голосов
/ 05 сентября 2011

Мне нужно прочитать строки различной длины в CI, я могу сделать это, используя массив указателей и используя, alloc внутри цикла. Проблема состоит в том, что входные данные для программы представляют собой серию предложений вроде этого:1002 *

Рене Декарт однажды сказал:
«Я думаю, поэтому я и есть».

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

Ответы [ 6 ]

1 голос
/ 05 сентября 2011

Может быть, он даже ищет конец файла (конец ввода, конец потока).Вы можете определить конец входного потока, проверив возвращаемое значение различных функций ввода.Вы не сказали нам, какую функцию вы используете для чтения ввода.Например, с fgets() и вводом на стандартном вводе вы бы сделали

#include <stdio.h>

#define BUFFERSIZE 256
char buffer[BUFFERSIZE];
...

while (fgets (buffer, sizeof buffer, stdin) != NULL) {
   /* Do something with buffer. */
}
/* No more lines on stdin. */
1 голос
/ 05 сентября 2011

Если я понимаю вопрос, вы не ищете сигнал «конец строки»; Вы ищете сигнал "конец предложений".

Обычный способ сделать это - попросить пользователя ввести пустую строку, когда он или она закончили. Затем (в зависимости от того, как вы читаете строки) вы можете проверить наличие либо пустой строки, либо строки, содержащей только один символ (перевод строки).

0 голосов
/ 05 сентября 2011

Вы можете указать пользователю ввести специальный символ или строку, которая будет указывать, что ввод завершен.Например, вы можете указать пользователю ввести . в новой строке, чтобы завершить ввод.Оформить заказ и ответ Адама Лисса

0 голосов
/ 05 сентября 2011

Используйте some delimiters и попросите пользователя ввести его по окончании всех предложений ,, Также для проверки на конец each line check with '\n' as the delimiter ,,

0 голосов
/ 05 сентября 2011

Вы должны обрабатывать их по одной строке за раз, используя «конец строки» в качестве разделителя. Вы можете сохранить их в **char - конечно же, правильно распределить. Будьте осторожны с границами и предпочитайте от strncpy() до strcpy() - последнее небезопасно.

0 голосов
/ 05 сентября 2011

Зацикливание ключей массива, пока не найдете символ "\ 0".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...