Появляется в переменной text перед символами символ \n - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Если код такой, то проблем нет
// ConsoleApplication12.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "malloc.h"
#include "stdio.h"
#include "iomanip"
#include "windows.h"
 
int main()
{
    setlocale(LC_ALL, "RU");
    int gl = 5, m;
    int kolvo = 0;
    char glasnie[13] = "aeiouyAEIOUY";
    char *text;
    text = (char*)malloc(sizeof(char));
    int i = 0;
    while ((text[i] = getchar()) != '\n' && kolvo < gl)
    {
        i++;
        for (m = 0; m < 14; m++)
        {
            if (text[i] == glasnie[m])
            {
                kolvo++;
            }
        }
        text = (char*)realloc(text, (i + 1)*sizeof(char));
    }
    text[i] = '\0';
    printf("Вы ввели текст:%s\n", text);
    system("pause");
    return 0;
}
Если появляется эта строка, то появляется в переменной text перед символами символ \n
scanf_s("%d", &gl);
В этом месте
// ConsoleApplication12.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "malloc.h"
#include "stdio.h"
#include "iomanip"
#include "windows.h"
 
int main()
{
    setlocale(LC_ALL, "RU");
    int gl = 5, m;
    int kolvo = 0;
    char glasnie[13] = "aeiouyAEIOUY";
    char *text;
    text = (char*)malloc(sizeof(char));
    int i = 0;
    scanf_s("%d", &gl);
    while ((text[i] = getchar()) != '\n' && kolvo < gl)
    {
        i++;
        for (m = 0; m < 14; m++)
        {
            if (text[i] == glasnie[m])
            {
                kolvo++;
            }
        }
        text = (char*)realloc(text, (i + 1)*sizeof(char));
    }
    text[i] = '\0';
    printf("Вы ввели текст:%s\n", text);
    system("pause");
    return 0;
}
В чём дело и как убрать этот символ, подскажите.
АП!

Решение задачи: «Появляется в переменной text перед символами символ \n»

textual
Листинг программы
scanf_s("%d", &gl);
getchar();
while ((text[i] = getchar()) != '\n' && kolvo < gl)

Объяснение кода листинга программы

  1. Вводится число с помощью функции scanf_s в переменную gl.
  2. После ввода числа происходит считывание символа новой строки с помощью функции getchar.
  3. Затем начинается цикл while, который будет выполняться до тех пор, пока не будет прочитан символ новой строки и переменная kolvo меньше gl.
  4. Внутри цикла происходит считывание символа новой строки с помощью функции getchar и сохранение его в переменную text[i].
  5. После цикла while происходит выход из программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.571 из 5
Похожие ответы