Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
#1

Ошибка с strtok - как исправить? - C++

16.04.2013, 00:09. Просмотров 407. Ответов 3
Метки нет (Все метки)

Вот например:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
using namespace std; 
void main ()
{ 
char text[]="gh.gh.g hghgh o3 jf7 fk., fj", *text1, *text2;
 
   text1=strtok(text, " ");  \\здесь text1 должно принимать значение gh.gh.g - собственно все правильно получается
                                        
    text2=strtok(text1, ".");   \\text2 становится gh - пока все правильно 
    cout<<text2;
    while(text2!=NULL)                      \\после выполнения цикла должно вывестись ghghg - собственно выводится
    {text2=strtok('\0', "."); cout<<text2;   \\ и выскакивает ошибка
    }
 
}
Как избавиться от ошибки? Потому что после вывода ghghg мне нужно дальше работать в программе

Добавлено через 17 минут
while(text2!=NULL)
Не понимаю вот какое условие здесь нужно поставить, чтобы правильно работало?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2013, 00:09     Ошибка с strtok - как исправить?
Посмотрите здесь:

Использование STRTOK Разбить строку на слова, из слов составить список C++ Функция strtok - C++
Задача Дана строка слов с разделителями, в данном примере слова с пробелами Нужно, используя функцию strtok, сформировать из этих слов...

Strtok ошибка в цикле - C++
char s1, *ptr; int lengthStr = 0; cin.getline(s1, size); checkStr(s1); //исправляем двойные/тройные пробелы while (s1...

Непонятная ошибка с вызовом strtok - C++
struct List { string listName; string creationDate; int usesCount; List *nextList; ... }; class linkedList { string...

2012 strtok не работает и выдается ошибка, что требуется strtok_s - C++
Проблема в том, что в 2012-ом strtok не работает и выдается ошибка типо нужно strtok_s. Ввожу strtok_s, а это уже абсолютно другая функция,...

в чём ошибка и как ёё исправить? - C++
a.get_cina = a.get_cina()*(1 + double(vids/100)); в чём ошибка и как ёё исправить?

Ошибка в методе, как исправить? - C++
void Point::Read() { int _x,_y; cin&gt;&gt;&quot;(&quot;&gt;&gt;_x&gt;&gt;&quot;,&quot;&gt;&gt;_y&gt;&gt;&quot;)&quot;; SetX(_x); SetX(_y); } Вот метод класса Point, хотел вводить...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
16.04.2013, 00:16     Ошибка с strtok - как исправить? #2
Дело в том, что strtok у вас возвращает 0, и cout не может его напечатать

Добавлено через 2 минуты
И ghghg после цикла точно никак не выведется, потому что strtok сначала изменил пробел на '/0' в исходной строке, а потом точку
Wladius
12 / 7 / 2
Регистрация: 06.01.2013
Сообщений: 127
16.04.2013, 00:16  [ТС]     Ошибка с strtok - как исправить? #3
Цитата Сообщение от ViktorKozlov Посмотреть сообщение
Дело в том, что strtok у вас возвращает 0, и cout не может его напечатать
В самом деле заработало без cout, но мне надо как-то это вывести, что можно сделать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2013, 00:18     Ошибка с strtok - как исправить?
Еще ссылки по теме:

Ошибка, не знаю как исправить - C++
Добрый вечер всем!! У меня возник небольшой вопрос по поводу моей программы... Мне необходимо протестировать различные методы...

ошибка подскажите как исправить!! - C++
1&gt;d:\calcu\calcu\Form1.h(343): error C3861: strtoint32: идентификатор не найден int a; int b; a =...

в чём ошибка ? и как исправить ? - C++
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; int main() { int n, i; char *s; printf(&quot;Введите n: &quot;); ...

Ошибка константа. как исправить? - C++
помогите пожалуйста, как убрать эту ошибку?

ошибка компилятора как исправить - C++
компилятор видает ошибку (Stack around the variable &quot;pt2&quot; was corrupted) з чем может бить связана данная ошибка, компилятор Microsoft...

В чем ошибка и как исправить? - C++
Была задача написать программу с использованием рекуррентных соотношений. (см. вложение) Выдал ошибку. вот код: #include &lt;iostream.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
16.04.2013, 00:18     Ошибка с strtok - как исправить? #4
Можно перед выводом проверять, равен ли указатель 0

C++
1
if (text2) cout<<text2;
Yandex
Объявления
16.04.2013, 00:18     Ошибка с strtok - как исправить?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru