Популярные вопросы начинающих!

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Как я понял, надо указывать размер
C:
scanf_s("%s", pet, 30);
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Здравствуйте! Почему в этой программе на одном компьютере все получается, на другом - при любом введенном символе упорно выдает символ "м"? На обоих компьютерах стоит Visual Studio.
C:
#include<stdio.h>
#include<locale.h>
int main(void)
{
setlocale(LC_ALL,"rus");
char simvol;
printf("Введите символ\n");
scanf_s(" %c", &simvol);
printf("Символ %c", simvol);
return 0;
}
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Поменял разрядность платформы решения с x86 на x64 (на первом компьютере был виндовс 7 на другом виндовс 10 оба 64 разрядные. Работало на виндовс 10. Теперь на виндовс 7 тоже работает.
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Здравствуйте!
Почему-то не работает этот код. Когда убираешь if и программа сначала шифрует, а потом расшифровывает текст всё работает. А когда добавляешь, она спрашивает, что вы хотите ввести 1 или 2, а потом заканчивает программу и не даёт ввести текст. Вот код.
C:
#include <stdio.h>
#include <ctype.h>
#include <locale.h>
int main(void)
{
    setlocale(LC_ALL, "rus");
    char ch;
    int n;
    printf("Здравствуйте! Это программа использует метод посимвольного шифрования,");
    printf(" исключая пробелы и знаки пунктуации.\n");
    printf("Для шифровки текста нажмите 1, для расшифровки 3.\n");
    scanf_s("%d", &n);
    if (n == 1)
    {

        while ((ch = getchar()) != '\n')
        {
            if (isalpha(ch))
                putchar(ch + 1);
            else
                putchar(ch);
        }
        putchar(ch);
    }
    if (n == 2)
    {
        printf("Введите текст который хотите расшифровать.\n");
        while ((ch = getchar()) != '\n')
        {
            if (isalpha(ch))
                putchar(ch - 1);
            else
                putchar(ch);
        }
        putchar(ch);
        printf("Вот результат. Спасибо за то, что использовали нашу программу.\n");
    }
    return 0;
}
Как исправить? Заранее спасибо!:):):)
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Если я правильно понял, то этим условием ты выбираешь действие. То есть выполняется или 1 или 2. Но не вместе.
А в случае без условий программа последовательно выполняет шифровку и дешифровку.

При этом допущена большая ошибка - n у тебя не определена. Не назначается ей ничего.
То есть по логике должно быть как-то так
C:
if ( (n = getchar()) == 1 ){}
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Я так и хотел, что бы пользователь выбирал, что он хочет зашифровать или расшифровать. А n определяется scanf_s("%d", &n); разве не так?
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Наверное да. Не заметил.
Во время отладки/поиска ошибки можно использовать вывод в консоль на каждой строке.
То есть как-то так

C:
#include <stdio.h>
#include <ctype.h>
#include <locale.h>
int main(void)
{
    setlocale(LC_ALL, "rus");
    char ch;
    int n;
    printf("Здравствуйте! Это программа использует метод посимвольного шифрования,");
    printf(" исключая пробелы и знаки пунктуации.\n");
    printf("Для шифровки текста нажмите 1, для расшифровки 3.\n");
    scanf_s("%d", &n);
    if (n == 1)
    {
    printf(" 1.\n");
        while ((ch = getchar()) != '\n')
        {
            printf(" 1.1 \n");
            if (isalpha(ch))
                printf(" 1.2 \n");
                putchar(ch + 1);
            else
                printf(" 1.3 \n");
                putchar(ch);
        }
        putchar(ch);
    }
    if (n == 2)
    {
        printf("Введите текст который хотите расшифровать.\n");
        while ((ch = getchar()) != '\n')
        {
            printf(" 2 \n");
            if (isalpha(ch))
                printf(" 2.1 \n");
                putchar(ch - 1);
            else
                printf(" 2.2 \n");
                putchar(ch);
        }
        putchar(ch);
        printf("Вот результат. Спасибо за то, что использовали нашу программу.\n");
    }
    return 0;
}
Так ты поймёшь на каком моменте проблемы.
Ещё также можно выводить переменную после присвоения (не уверен, что правильно воспользовался функцией printf)
Код:
    scanf_s("%d", &n);
    printf(n);
На Си есть отдельно отладка и брекпоинты. Ими полезно будет научится вместо того что выше показал, полезно будет в будущем.
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Здравствуйте!
Вчера решил установить новый компилятор GCC, так как вижуал студия не поддерживает новые стандарты си 99. С помощью команды в командной строке (cd C:\Users\anjut\Desktop) перехожу в нужную папку, а после этого пытаюсь откомпилировать файл hello.c, который находится в этой папке с помощью команды (gcc hello.c). И получаю вот такой результат.
Снимок экрана (96).png

Подскажите, пожалуйста почему так?
Переменные среды тоже прописывал вот так. D:\Программы\КомпиляторGCC\mingw64\bin\gcc.exe
 

йцукенгшщзхъ

Well-Known Member
Регистрация
24.06.2020
Сообщения
45
Изменил имена папок в пути к компилятору так, чтобы имена были без пробелов. Заработало.
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
имена были без пробелов
С пробелами надо заключать в двойные кавычки. А ещё лучше по возможности использовать только малые буквы латиница. Иначе при переносе на другие компы возможны неожиданные глюки.
 

Vlad88

New Member
Регистрация
27.11.2021
Сообщения
1
Доброго всем времени. Ребята помогите решить проблему. Нужно выводить данные из exel файлы на простой html странице с возможностью фильтрации. Сам сайт полная статика и не какими модулями это не решить. Подскажите как быть, куда копать...
 

Volly

Well-Known Member
Регистрация
21.03.2012
Сообщения
831
Например, использовать php версии 5.2 или выше, в которой есть библиотека PHPExcel, предназначенная для обработки данных формата MS Excel.
 

Vlad1966

New Member
Регистрация
14.03.2024
Сообщения
1
Добрый день всем!
Пишу в этот форум впервые так что извините если что.

Есть вот такой зарубежный вэб-сайт, сделанный по технологии ASP (скрины в прикреплённых файлах).
Знания по HTML, CSS, JavaScript, PHP и MySQL будут достаточны для создания подобного сайта? Или нужны знания ещё по каким-то технологиям (языкам)?pic1.pngpic3.pngpic6.pngpic8.png
 

BaNru

Пацифизжу
Команда форума
Регистрация
13.11.2010
Сообщения
4 137
Достаточно. Но надо хорошо знать перечисленное.
 
Верх Низ