Появляется в переменной text перед символами символ \n - C (СИ)
Формулировка задачи:
Если код такой, то проблем нет
Если появляется эта строка, то появляется в переменной text перед символами символ \n
В этом месте
В чём дело и как убрать этот символ, подскажите.
// 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;
}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)
Объяснение кода листинга программы
- Вводится число с помощью функции scanf_s в переменную gl.
- После ввода числа происходит считывание символа новой строки с помощью функции getchar.
- Затем начинается цикл while, который будет выполняться до тех пор, пока не будет прочитан символ новой строки и переменная kolvo меньше gl.
- Внутри цикла происходит считывание символа новой строки с помощью функции getchar и сохранение его в переменную text[i].
- После цикла while происходит выход из программы.