![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| JAnty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Не могу сделать следующее:
есть файл "text.txt", содержимое: Hello World ! Я читаю строки fscanf("%s",&str); при первом чтении str="Hello" при второи чтении str="World" а пробел это разделитель. Как мне его отследить его(пробел || \n)? Это сообщение отредактировал(а) JAnty - 29.3.2005, 19:49 -------------------- |
|||
|
||||
| En_t_end |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2074 Регистрация: 4.12.2004 Репутация: 1 Всего: 20 |
я бы читал так(ifstream in;in.open("test.txt")) in >> str, все это в цикл и усе
PS наф. юзать sscanf ? Добавлено @ 17:13 ifstream in; in.open("test.txt"); char str[9999]; { int i=0; while(i != 2)} in >> str; cout << str; i++;} } Это сообщение отредактировал(а) En_t_end - 29.3.2005, 17:09 |
|||
|
||||
| JAnty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Мне надо считать символ после слова Hello и провереть его, Enter или это пробел.
-------------------- |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
scanf("%s", str);
scanf("%c", chr); if (chr == ' ') || ( == '\n') ..... Не уверен на счет %c - чар символ. |
|||
|
||||
| JAnty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Ну так не работает почемуто.
-------------------- |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
scanf("%[^ \n]%c, str, &chr);
%[^ \n] означает - читай все, кроме пробела и возврата каретки. Естественно, можно написать побольше разделителей. Это не совсем стандартная фича, но в большинстве современных CRT присутствует. Это сообщение отредактировал(а) Void - 29.3.2005, 18:40 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| JAnty |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 6.12.2004 Где: Москва Репутация: 1 Всего: 2 |
Заработало. Fixin Я просто нето писал, вместо
char str; писал char* str; "%c" это один символ, символьней небывает.(То что надо)
а это чото я не очень понял. -------------------- |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Да ничего сложного, хотя это излишне, если вариант Fixin работает. Просто я попробовал предложить еще одно решение. Помимо стандартных спецификаторов формата (%s, %c и т. д.) есть расширения, позволяющие читать строки с произвольными разделителями. В квадартных скобках - набор допустимых символов, ^ означает дополнение к этому набору, т.е. "все кроме". В данном примере в первое поле могут быть прочитаны любые символы, кроме пробела и \n, т.е. scanf будет читать до первого из этих разделителей. Следующий символ во входном потоке и будет искомый. Немного по этому поводу можно почитать здесь. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Bio |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 18.12.2006 Репутация: нет Всего: нет |
Помогите!
Как прочитать поток символов, не разделённых пробелом, из файла эффективным обраозом? Например: 00101110000110 Имеется в виду: fi = fopen("input.txt","r"); while (!feof (fi)) { // обрабатываю каждый 0 и 1 как отдельный символ } Это сообщение отредактировал(а) Bio - 20.5.2008, 17:46 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
fgetc
|
|||
|
||||
| Bio |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 18.12.2006 Репутация: нет Всего: нет |
Спасибо
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |