Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/21: Рейтинг темы: голосов - 21, средняя оценка - 4.90
 Аватар для dakota412
22 / 22 / 1
Регистрация: 14.02.2010
Сообщений: 50

Ввод и вывод строки

17.08.2010, 16:30. Показов 4519. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет)) Ребят очень тупой вопрос, но хоть убейте не въезжаю почему ничего не работет. Привожу фрагмент кода:
C++
1
2
3
4
char nm;
    scanf("%s", &nm);
    printf("%s", &nm);
    getch();
Суть в следующем: я уже написал консольную игрушку морской бой (мультиплеер, написать игру против компа че то мозги не доходят) (простенько но неплохо), вот теперь хочу чтоб пользователи вводили свои имена, чтобы комп мог к ним по именам обращаться. Но при приведённом варианте кода компилятор выдаёт, что стек на переменной nm повреждён((( Может кто подскажет в чём дело?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.08.2010, 16:30
Ответы с готовыми решениями:

Прога не показывает ввод аргументов командной строки и вывод их
#include <iostream> using namespace std; int main(int argc, char *argv) { for(int i = 0; i < argc; i++) { cout << argv <<...

Ввод с клавиатуры строки символов, вывод строки в обратном порядке на принтер
Составить программу для ввода с клавиатуры строки символов "Периферийные устройства ЭВМ" в окно ввода. Записать строку в буфер buf и...

Написать программу разрешающую ввод строки не более 80 символов и вывод на экран этой строки красным цветом
Ассемблер. Написать программу разрешающую ввод строки не более 80 символов и вывод на экран этой строки красным цветом

5
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
17.08.2010, 16:49
Цитата Сообщение от dakota412 Посмотреть сообщение
char nm;
поменяйте хотябы на
C++
1
char nm[256];
1
 Аватар для dakota412
22 / 22 / 1
Регистрация: 14.02.2010
Сообщений: 50
17.08.2010, 22:43  [ТС]
спасибо большое, вы мне очень помогли) Только вот другая проблема появилась при вводе строки на русском языке выводится абракадабра, хотя
C++
1
setlocale(LC_ALL, "Russian");
есть. не знаете как это исправить??? Заранее спасибо.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
17.08.2010, 22:49
dakota412, CharToOemA и OemToCharA вам в помощь
1
 Аватар для dakota412
22 / 22 / 1
Регистрация: 14.02.2010
Сообщений: 50
17.08.2010, 23:04  [ТС]
Хорошо, спасибо. А вы могли бы привести пример такого преобразования? Просто я новичок и мягко говоря не силён в параметрах этих функций.
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
18.08.2010, 00:31
Цитата Сообщение от dakota412 Посмотреть сообщение
А вы могли бы привести пример такого преобразования?
В результате выполнения вот этой
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
 
#define BUF_LEN 256
#define FILE_NAME "fio.txt"
 
int main(void){
    char buf[BUF_LEN], conv[BUF_LEN];
    FILE * f;
    
    if ( ( f = fopen(FILE_NAME, "w") ) == NULL ){
        perror("fopen");
        exit(EXIT_FAILURE);
    }
    
    CharToOemA("Имя: ", conv); /* без этой функции текст будет нечитаем на экране */
    printf("%s", conv);
    if ( scanf("%s", buf) != 1 ){
        perror("scanf");
        exit(EXIT_FAILURE);
    }
    OemToCharA(buf, conv); /* а без этой - в файле */
    if ( fprintf(f, "%s\n", conv) < 0 ){
        perror("fprintf");
        exit(EXIT_FAILURE);
    }
    
    CharToOemA("Отчество: ", conv);
    printf("%s", conv);
    if ( scanf("%s", buf) != 1 ){
        perror("scanf");
        exit(EXIT_FAILURE);
    }
    OemToCharA(buf, conv);
    if ( fprintf(f, "%s\n", conv) < 0 ){
        perror("fprintf");
        exit(EXIT_FAILURE);
    }
    CharToOemA("Фамилия: ", conv);
    printf("%s", conv);
    if ( scanf("%s", buf) != 1 ){
        perror("scanf");
        exit(EXIT_FAILURE);
    }
    OemToCharA(buf, conv);
    if ( fprintf(f, "%s\n", conv) < 0 ){
        perror("fprintf");
        exit(EXIT_FAILURE);
    }
    
    if ( fclose(f) ){
        perror("fclose");
        exit(EXIT_FAILURE);
    }
    
    exit(EXIT_SUCCESS);
}
программы в той же папке, из которой она была запущена, появится файл fio.txt, который можно будет открыть блокнотом. Попробуйте закомментировать какой нибудь из вызовов этих функций, перекомпилируйте программу, запустите ещё раз, посмотрите, что изменится...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.08.2010, 00:31
Помогаю со студенческими работами здесь

Ввод/вывод строки
Писал большой проект, но определенный модуль не работал так, как нужно После нескольких часов поиска ошибки, оказалось, что неправильно...

Ввод и вывод строки
&quot;Напишите программу, которая вводит строку и выводит её, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1...

Ввод-вывод строки
Написать программу под DOS ввода-вывода строки на экран.

Ввод/вывод строки
#include &lt;iostream&gt; using std::cin; using std::cout; using std::endl; #include &lt;string&gt; using std::strlen; using...

Вывод и ввод строки
Как мне получить строку, введённую пользователем, и вывести в консоль? То же что и на Python: print(input()) Добавлено через 17...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru