Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
6 / 6 / 1
Регистрация: 31.08.2013
Сообщений: 68
1

Ошибка в scanf

28.02.2014, 20:53. Показов 2435. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть простой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    
    char x;
    scanf ("%s", &x);
    
    printf("Hello, %s", x);
    
    getchar();
    getchar();
    return 0;
}
Запускаем, открывается консоль, вводим что небудь, консоль закрывается и выскакивает ошибка:
Миниатюры
Ошибка в scanf  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.02.2014, 20:53
Ответы с готовыми решениями:

Ошибка scanf?
Вот кусок кода. double lf; sscanf("5000.7","%lf",&lf); ...

Ошибка в SCANF
warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To...

Ошибка в scanf (наверное)
http://************/llq1xj В чем проблема? Добавлено через 11 минут Помогите пожалуйста

Ошибка использования scanf
Проблемы с директивой scanf(..). Компилятор выдает: d:\program files\microsoft visual studio...

7
6 / 6 / 1
Регистрация: 31.08.2013
Сообщений: 68
28.02.2014, 20:56  [ТС] 2
При замене char на int и %s на %d код выполняется
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
28.02.2014, 21:00 3
Цитата Сообщение от CssHammer Посмотреть сообщение
При замене char на int и %s на %d код выполняется
Цитата Сообщение от CssHammer Посмотреть сообщение
char x;
* * scanf ("%s", &x);
ты хочешь целую строку в один байт запихать?
почитай что есть строки в Си
0
6 / 6 / 1
Регистрация: 31.08.2013
Сообщений: 68
28.02.2014, 21:09  [ТС] 4
Насколько я понял для строк нужно использовать gets, а не scanf?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
28.02.2014, 21:10 5
Цитата Сообщение от CssHammer Посмотреть сообщение
Насколько я понял для строк нужно использовать gets, а не scanf?
ты где память для строки определил?
Цитата Сообщение от CssHammer Посмотреть сообщение
char x;
это выделяет память для одного байта, т.е для одной буковки
0
6 / 6 / 1
Регистрация: 31.08.2013
Сообщений: 68
28.02.2014, 21:16  [ТС] 6
C++
1
char x[];
По идее же автоматически должна подходящая память сама выделиться?
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,521
28.02.2014, 21:39 7
Лучший ответ Сообщение было отмечено CssHammer как решение

Решение

Цитата Сообщение от CssHammer Посмотреть сообщение
по идее же автоматически должна подходящая память сама выделиться?
с какого перепугу?
этак ты и массивы захочешь безразмерные объявлять

char x[] сработает только тогда когда известен размер на этапе компиляции
например
C++
1
char x[]="Привет";
выделится 7 байт 6 под "Привет" и 7 под завершающий 0

напиши вот так
C++
1
2
char x[256];
scanf ("%s", x);
и будет тебе шастье
1
6 / 6 / 1
Регистрация: 31.08.2013
Сообщений: 68
28.02.2014, 21:44  [ТС] 8
Благодарю и вручаю медаль за помощь нубью)
0
28.02.2014, 21:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.02.2014, 21:44
Помогаю со студенческими работами здесь

Ошибка в scanf
вот кусок программы, подскажите, где ошибка в scanf int i; printf ("Information:\n"); ...

Ошибка в Scanf
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> int main(void) { ...

Ошибка scanf
Решил вкатится в программирование на C.Сначала всё было нормально, скачал Microsoft Visual Studio,...

Ошибка ввода scanf
не воспринимает целое в переменной n scanf("Число N = %d",n);...

Ошибка C4996 при использовании scanf
Всем доброго времени суток. В VS 2015. При работе с функцией scanf(), возникает ошибка C4996...

Ошибка при считывании через scanf
Помогите, пожалуйста, разобрать, где допустил ошибки. После ввода x выдает ошибку. #include...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru