Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / printf / 7 сообщений из 7, страница 1 из 1
17.11.2012, 09:53
    #38042428
demkonst
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
Простите великодушно, тривиальный пример вызывает затруднения
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#include <stdio.h>
#include <string>
using namespace std;

void main() {
    string s;
    scanf("%s", s);
    printf("%s\n", s);
    system("pause");
}


Необработанное исключение в "0x777715de" в "103.exe": 0xC0000005: Нарушение прав доступа при записи "0x0000006b". Что я делаю не так?
...
Рейтинг: 0 / 0
17.11.2012, 14:44
    #38042545
m_Sla
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
demkonstПростите великодушно, тривиальный пример вызывает затруднения
...
Необработанное исключение в "0x777715de" в "103.exe": 0xC0000005: Нарушение прав доступа при записи "0x0000006b". Что я делаю не так?либо так
Код: plaintext
1.
char s[50];


либо так
Код: plaintext
1.
2.
3.
    string s;
    cin>>s;
    cout<<s;

scanf с ключем "%s" желает char*, а ты ему string пихаешь. Странно, что скомпилировалось.
...
Рейтинг: 0 / 0
17.11.2012, 15:11
    #38042553
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
m_SlaСтранно, что скомпилировалось.Ничего странного. printf же жрёт любые аргументы (от слова "любые"). Компилятор не берёт на себя ответственность предварительно анализировать строку и выяснять, какие там должны быть типы.
...
Рейтинг: 0 / 0
17.11.2012, 15:47
    #38042571
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
AbstractionКомпилятор не берёт на себя ответственность предварительно анализировать строку и выяснять, какие там должны быть типы.
Ну это не любой компилятор :)
GCC например проверяет тип и кол-во аргументов по формату.
...
Рейтинг: 0 / 0
18.11.2012, 12:23
    #38043047
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
demkonstПростите великодушно, тривиальный пример вызывает затруднения
[src c++]
#include <stdio.h>
#include <string>
using namespace std;

void main() {
string s;
scanf("%s", s);


Что я делаю не так?

В C++ передача объектов в функции с элипсисом запрещена (UB).
...
Рейтинг: 0 / 0
19.11.2012, 14:43
    #38044110
printf
string.c_str() спасет отца русской демократии
Код: plaintext
1.
printf("%s\n", s.c_str()); 
...
Рейтинг: 0 / 0
19.11.2012, 15:55
    #38044250
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
printf
на право трудный бой, на лево миstring.c_str() спасет отца русской демократии


Спасёт, но не в случае scanf-а.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / printf / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]