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

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
xSmoke
5 / 5 / 0
Регистрация: 13.04.2010
Сообщений: 100
#1

Ввод и вывод данных с консоли - C (СИ)

13.11.2012, 01:52. Просмотров 1834. Ответов 5
Метки нет (Все метки)

Здравствуйте!
Начали изучать программирование в универе, учебник выдали по C#, а лабораторные пишем на С. По этому пытаюсь учиться сам, гугля.

Попалась такая задачка:
Ввести строку и целое число с помощью консоли и вывести их же.
Размер строки не ограничен

C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h> // Подключаем заголовочный файл
 
char* a; //Объявляем переменную а
 
int main()
{
printf("Vvedite text:\n"); //Приглашение ввести текст
scanf (a); //Вводим текст и присваиваем его на переменную
puts(a); //Ввыводим текст с переменной а
}
Почему студия выдает ошибку? Что я делаю не правильно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2012, 01:52
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Ввод и вывод данных с консоли (C (СИ)):

Ввод-вывод данных - C (СИ)
Составить программу вывода на экран числа, вводимого с клавиатуры. Выводимому числу должно предшествовать сообщение «Вы ввели число». ...

Ввод и вывод данных - C (СИ)
Подскажите, пожалуйста, в чем ошибка? #include&lt;stdio.h&gt; #include&lt;conio.h&gt; main(void) { unsigned int a,b; long...

Ввод/Вывод данных в динамический массив - C (СИ)
Помогите пожалуйста, нифига не получается Ввод/Вывод данных в динамический массив Си.

Переделать ввод с консоли на ввод из файла - C (СИ)
Здравствуйте! Написала программу, но результат таков: я брала информацию из строки. Мне нужно, чтобы брать информацию из файла, а не из...

Ввод/вывод данных элементов структуры через функцию - C (СИ)
Разработать программу учета покупок ювелирного магазина. Данные о покупках хранить в виде массива структур. Итоговая информация должна...

Организовать ввод / вывод данных без динамических массивов - C (СИ)
данная программа вычисляет стипендию у студентов так вот необходимо ввести номер студента и его оценку но без динамических массивов как в...

5
mrmaster88
42 / 42 / 3
Регистрация: 13.04.2012
Сообщений: 112
13.11.2012, 02:11 #2
Цитата Сообщение от xSmoke Посмотреть сообщение
Почему студия выдает ошибку?
если Visual Studio, то там ограничения на scanf и putc, как небезопасные
какие ошибки?
0
xSmoke
5 / 5 / 0
Регистрация: 13.04.2010
Сообщений: 100
13.11.2012, 02:31  [ТС] #3
Посреди экрана вылазит окошко

---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!

Program: ...ko_a\Desktop\Программирование\С_Лабы\Лаб1\lab1\Debug\lab1.exe
File: f:\dd\vctools\crt_bld\self_x86\crt\src\gets.c
Line: 37

Expression: (string != NULL)

For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.

(Press Retry to debug the application)
---------------------------
Прервать Повтор Пропустить
---------------------------

Добавлено через 39 секунд
Может как-то другими способами можно сделать задание?

Добавлено через 13 минут
Попробовал по другому:

C
1
2
3
4
5
6
7
char *str;
 
int main()
{
    scanf("%s",&str); 
    printf("%s", str)
}
Выдает ту же ошибку
0
mrmaster88
42 / 42 / 3
Регистрация: 13.04.2012
Сообщений: 112
13.11.2012, 02:45 #4
Цитата Сообщение от xSmoke Посмотреть сообщение
char *str;
str - это уже ссылка на первый элемент
объявите кол-во элементов, [80] например

Цитата Сообщение от xSmoke Посмотреть сообщение
scanf("%s",&str);
& - не нужно для строки

Цитата Сообщение от xSmoke Посмотреть сообщение
scanf (a)
а так больше не делайте!

Добавлено через 1 минуту
Цитата Сообщение от xSmoke Посмотреть сообщение
Посреди экрана вылазит окошко
обычно это при выходе за пределы массива
0
xSmoke
5 / 5 / 0
Регистрация: 13.04.2010
Сообщений: 100
13.11.2012, 15:44  [ТС] #5
Ну по условию ведь, что строка не ограничена.
Если я сделаю *str[80], она будет ограничена 80 символами...

Добавлено через 12 часов 43 минуты
А из-за чего могут быть ошибки?

"lab1.exe": Загружено: "C:\Users\romashko_a\Desktop\Программирование\С_Лабы\Лаб1\lab1\Debug\lab1.exe", Символы загружены.
"lab1.exe": Загружено: "C:\Windows\SysWOW64\ntdll.dll", Невозможно найти или открыть файл PDB
"lab1.exe": Загружено: "C:\Windows\SysWOW64\kernel32.dll", Невозможно найти или открыть файл PDB
"lab1.exe": Загружено: "C:\Windows\SysWOW64\KernelBase.dll", Невозможно найти или открыть файл PDB
"lab1.exe": Загружено: "C:\Windows\SysWOW64\msvcr100d.dll", Символы загружены.
Программа "[9476] lab1.exe: Машинный код" завершилась с кодом 0 (0x0).

Добавлено через 25 секунд
Код программы:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
 
 
int main()
{
    char str[80];
    int number;
    scanf(str);
    printf("%s", str);
    scanf("%id", &number);
    printf("%id", &number);
    return 0;
}
0
sstom
5 / 5 / 3
Регистрация: 25.09.2012
Сообщений: 23
16.11.2012, 17:39 #6
что то у меня твой код не скампилело и ты фигню написал: printf("%id", &number)-оперсанда не должно быть;printf("%s", str)-если не ошибаюсь считывает строку до первого пробела а потом оставшиеся символы отбрасывает
вот на нормальный код
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
 
 
int main(int argc, char *argv[])
{
    char str[80];
    int number;
    printf("Vvedite stroku: \n");
    gets(str);//функция ввода строки
    printf("Vy vveli stroku: \n");
    puts (str);//функция вывода строки
    printf("Vvedite chislo: \n");
    scanf("%d", &number);
    printf("Vy vveli chislo: %d\n", number);
 
    return 0;
}
Добавлено через 6 минут
писал на pelles c 7

Добавлено через 6 часов 7 минут
Цитата Сообщение от sstom Посмотреть сообщение
printf("%s", str)
не то написал. имел ввиду непонятную мне функцию scanf(str).для ввода и вывода строки в библиотеке stdio.h есть функции gets и puts.первая для ввода(например gets(str)),вторая-вывод(puts(str)).а scanf если, не ошибаюсь, считывает все символы до первого попавшегося пробела.
1
16.11.2012, 17:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 17:39
Привет! Вот еще темы с ответами:

Разработать программу, осуществляющую ввод исходных данных, необходимые вычисления и вывод результатов - C (СИ)
1. Составить алгоритм решения задачи. 2.*Разработать программу, осуществляющую ввод исходных данных, необходимые вычисления и вывод...

Запрет на ввод символов в консоли - C (СИ)
Ввобщем всем привет, хотелось бы чтобы вы мне помогли. Нужно реализовать запрет ввода символов в консоле. Вот то, что я смог осилить взяв...

Ввод русского текста из консоли в файл (проблема с кодировкой) - C (СИ)
Здравствуйте! Стоит казалось бы тривиальная задача - считать из консоли русский текст, записать его в файл, затем из этого файла данный...

Неожиданный консольный вывод в задании на поиск в массиве структур по заданному полю (файловый ввод/вывод) - C (СИ)
Подскажите, почему программа не работает? Только вот это сообщение выходит: Process exited after 0.004866 seconds with return value 0? ...


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

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

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