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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
07.07.2012, 23:15     printf не выводит значение строки #1
заместо значения выводит (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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5917 / 3354 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
07.07.2012, 23:17     printf не выводит значение строки #2
C++
14
printf("%s \n", stry.c_str());
xADMIRALx
 Аватар для xADMIRALx
66 / 60 / 1
Регистрация: 09.06.2012
Сообщений: 291
07.07.2012, 23:24     printf не выводит значение строки #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; 
 
}
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
07.07.2012, 23:30     printf не выводит значение строки #4
Цитата Сообщение от DaskOFF Посмотреть сообщение
printf("%s \n", stry);
о боги, спецификатор %s означает то что printf ожидает на входе const char*, неужели это так трудно понять тем более откуда Си-шной функции знать что такое объект, коим является ваш stry
Петррр
 Аватар для Петррр
5917 / 3354 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
07.07.2012, 23:32     printf не выводит значение строки #5
printf - Си-шная функция, и форматная строка %s ждет указатель на char (char*)
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
07.07.2012, 23:34  [ТС]     printf не выводит значение строки #6
Цитата Сообщение от Jupiter Посмотреть сообщение
о боги, спецификатор %s означает то что printf ожидает на входе const char*, неужели это так трудно понять тем более откуда Си-шной функции знать что такое объект, коим является ваш stry
да я уже понял, просто всегда выводил через std::cout, а тут узнал что она медленнее чем printf
до этого не пользовался ей ни разу
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
07.07.2012, 23:42     printf не выводит значение строки #7
DaskOFF, Ппц. Вы пишите приложение, которое будет работать на системе с 16 мб RAM? Какая вам разница медленнее ли cout printf-а? Вам это показал профайлинг? Вы вкурсе что использование std::string медленнее чем использование char*? Не занимайтесь преждевременной оптимизацией, никогда
ШКІПЕР
 Аватар для ШКІПЕР
93 / 93 / 7
Регистрация: 14.04.2010
Сообщений: 280
Записей в блоге: 9
Завершенные тесты: 1
07.07.2012, 23:50     printf не выводит значение строки #8
Цитата Сообщение от DaskOFF Посмотреть сообщение
просто всегда выводил через std::cout, а тут узнал что она медленнее чем printf
Тогда для Вас - welcome to assembler!

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

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

Не по теме:

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


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

Не по теме:

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

смысл в другом... не чтобы пользоваться , а чтобы понимать что в том или ином коде написанным другим пользователем выводиться...
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.07.2012, 19:11     printf не выводит значение строки #15
DaskOFF, практически ни в одной книге по С++ не будут рассматриваться сишные функции. Хотите разобраться в них - книгу по чистому Си в руки и вперёд. И забудьте сразу про их использование с объектами.
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
08.07.2012, 19:29  [ТС]     printf не выводит значение строки #16
Цитата Сообщение от silent_1991 Посмотреть сообщение
DaskOFF, практически ни в одной книге по С++ не будут рассматриваться сишные функции. Хотите разобраться в них - книгу по чистому Си в руки и вперёд. И забудьте сразу про их использование с объектами.
как я уже сказал, мне не для пользования, а чтобы понимать, как выводит printf результат, в некоторых темах эта функция фигурирует
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
08.07.2012, 19:32     printf не выводит значение строки #17
DaskOFF, и как это сводит на нет совет читать книги по Си для познания функций библиотеки Си?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2012, 19:58     printf не выводит значение строки
Еще ссылки по теме:

Вычислить значение выражения. Не работает printf C++
Printf не выводит текст C++
C++ Почему не выводит printf?

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

Или воспользуйтесь поиском по форуму:
DaskOFF
 Аватар для DaskOFF
112 / 112 / 9
Регистрация: 02.05.2012
Сообщений: 521
Записей в блоге: 1
08.07.2012, 19:58  [ТС]     printf не выводит значение строки #18
Цитата Сообщение от silent_1991 Посмотреть сообщение
DaskOFF, и как это сводит на нет совет читать книги по Си для познания функций библиотеки Си?
но я и советов по литературе не просил
Yandex
Объявления
08.07.2012, 19:58     printf не выводит значение строки
Ответ Создать тему
Опции темы

Текущее время: 00:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru