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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
#1

printf не выводит значение строки - C++

07.07.2012, 23:15. Просмотров 2353. Ответов 17
Метки нет (Все метки)

заместо значения выводит (null)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <string>
#include <iostream>
 
int main() 
{
    std::string stry("dDSGSfSfSGSDGdsGfHSDSDdSDGSD");
    for(std::string::iterator it=stry.begin(); it != stry.end();++it) {
        if (isupper(*it)) {
            stry.erase(it);
            it=stry.begin();
        }
    }
    printf("%s \n", stry);
    std::cout << stry << std::endl;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.07.2012, 23:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос printf не выводит значение строки (C++):

Почему не выводит printf? - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;math.h&quot; #include &quot;locale.h&quot; using namespace std; void main() { ...

Printf не выводит текст - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; using namespace std; int main() { char str; sprintf(str,...

Printf() выводит ерунду - C++
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;conio.h&gt; using namespace::std; ...

Функция не выводит значение строки - C++
Доброго Проблема в том, что функция print() не выводит значение. Ломаю голову, что может быть не так #include &lt;iostream&gt; #include...

Вычислить значение выражения. Не работает printf - C++
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include &lt;math.h&gt; int main () { float x,k,y; const int T=4; ...

Вывод строки в printf - C++
Есть варианты кода, пытающиеся вывести строку &quot;abc&quot; в stdout. #include &lt;stdio.h&gt; int main () { printf (&quot;%s&quot;, &quot;abc&quot;); ...

17
Петррр
5965 / 3402 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
07.07.2012, 23:17 #2
C++
14
printf("%s \n", stry.c_str());
2
xADMIRALx
67 / 61 / 1
Регистрация: 09.06.2012
Сообщений: 291
07.07.2012, 23:24 #3
честно говоря не знаю в чем проблема но могу чучуть переделать код :

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <stdio.h>
 
using namespace std;
int main()
{
   string stry("dDSGSfSfSGSDGdsGfHSDSDdSDGSD");
  char *p = NULL;
 p = &stry[0];
 for (; *p;++p)
{
 if (isupper(*p))
   *p = tolower(*p);
}
 
 cout << stry << endl;
return 0; 
 
}
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.07.2012, 23:30 #4
Цитата Сообщение от DaskOFF Посмотреть сообщение
printf("%s \n", stry);
о боги, спецификатор %s означает то что printf ожидает на входе const char*, неужели это так трудно понять тем более откуда Си-шной функции знать что такое объект, коим является ваш stry
0
Петррр
5965 / 3402 / 337
Регистрация: 28.10.2010
Сообщений: 5,926
07.07.2012, 23:32 #5
printf - Си-шная функция, и форматная строка %s ждет указатель на char (char*)
0
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
07.07.2012, 23:34  [ТС] #6
Цитата Сообщение от Jupiter Посмотреть сообщение
о боги, спецификатор %s означает то что printf ожидает на входе const char*, неужели это так трудно понять тем более откуда Си-шной функции знать что такое объект, коим является ваш stry
да я уже понял, просто всегда выводил через std::cout, а тут узнал что она медленнее чем printf
до этого не пользовался ей ни разу
0
ForEveR
В астрале
Эксперт С++
7979 / 4738 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
07.07.2012, 23:42 #7
DaskOFF, Ппц. Вы пишите приложение, которое будет работать на системе с 16 мб RAM? Какая вам разница медленнее ли cout printf-а? Вам это показал профайлинг? Вы вкурсе что использование std::string медленнее чем использование char*? Не занимайтесь преждевременной оптимизацией, никогда
0
ШКІПЕР
94 / 94 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
07.07.2012, 23:50 #8
Цитата Сообщение от DaskOFF Посмотреть сообщение
просто всегда выводил через std::cout, а тут узнал что она медленнее чем printf
Тогда для Вас - welcome to assembler!

Ребята, не бейте топикстартера, оптимизация - это весьма важный момент
1
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.07.2012, 00:01 #9
Что ж вы все так на ТС напали... Вот xADMIRALx вообще не понял почему не работает, а вы ТС браните.
1
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.07.2012, 00:05 #10
Цитата Сообщение от lazybiz Посмотреть сообщение
Что ж вы все так на ТС напали... Вот xADMIRALx вообще не понял почему не работает, а вы ТС браните.
флудить надо меньше, совсем недавно обсуждалось
С + + и Visual C + + и чем они отличаются? Есть ли их изучение взаимно дополняющее или это совсем разные языки?
С + + и Visual C + + и чем они отличаются? Есть ли их изучение взаимно дополняющее или это совсем разные языки?
С + + и Visual C + + и чем они отличаются? Есть ли их изучение взаимно дополняющее или это совсем разные языки?
0
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
08.07.2012, 00:12  [ТС] #11
Цитата Сообщение от ForEveR Посмотреть сообщение
DaskOFF, Ппц. Вы пишите приложение, которое будет работать на системе с 16 мб RAM? Какая вам разница медленнее ли cout printf-а? Вам это показал профайлинг? Вы вкурсе что использование std::string медленнее чем использование char*? Не занимайтесь преждевременной оптимизацией, никогда
большинство тут для вывода использует printf мне же надо знать как он выводит и почему именно так, а не иначе...

В общем спасибо тем кто помог, это все таки раздел для начинающих
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
08.07.2012, 00:18 #12
Цитата Сообщение от DaskOFF Посмотреть сообщение
большинство тут для вывода использует printf

Не по теме:

большинство понятие относительно, нужно иметь собственное мнение и голову на плечах


в коде на С++ использование Си-шных функций недопустимо и точка.
0
castaway
Эксперт С++
4885 / 3020 / 370
Регистрация: 10.11.2010
Сообщений: 11,078
Записей в блоге: 10
Завершенные тесты: 1
08.07.2012, 00:24 #13
Цитата Сообщение от Jupiter Посмотреть сообщение
в коде на С++ использование Си-шных функций недопустимо и точка.
Ну зачем же так резко. Допустимо конечно.. но не приветствуется. Например смешивать модулями - не плохая практика.
0
DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 524
Записей в блоге: 1
08.07.2012, 01:00  [ТС] #14
Цитата Сообщение от Jupiter Посмотреть сообщение

Не по теме:

большинство понятие относительно, нужно иметь собственное мнение и голову на плечах

смысл в другом... не чтобы пользоваться , а чтобы понимать что в том или ином коде написанным другим пользователем выводиться...
0
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
08.07.2012, 19:11 #15
DaskOFF, практически ни в одной книге по С++ не будут рассматриваться сишные функции. Хотите разобраться в них - книгу по чистому Си в руки и вперёд. И забудьте сразу про их использование с объектами.
1
08.07.2012, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2012, 19:11
Привет! Вот еще темы с ответами:

Ширина строки в printf - C++
покопался в инете, но чё-та не нашёл нужного мне варианта, наверно плохо искал )) находил всякие примеры типа printf(&quot;%-20s&quot;, &quot;это...

Составить программу, которая по введенному номеру месяца и номеру года выводит количество дней в этом месяце(использовать операторы printf и scanf) - C++
Составить программу, которая по введенному номеру месяца и номеру года выводит количество дней в этом месяце(использовать операторы printf...

printf и integer 128 бит, как вывести значение? - C++
Как напечатать через printf знаковый и беззнаковый 128-битный integer? Пробовал через llu и lllu, но пишет несоответствие...

используя только символьный вывод printf, вывести значение целой переменной k - C++
используя только символьный вывод, то есть функцию printf (&quot;% c&quot;, s), где s - переменная типа char, вывести значение целой переменной k....


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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