Я пытаюсь создать программу C, которая может принимать пробелы в scanf
и printf
, такие как имя и фамилия, как часть самообучающегося текста, который я читаю.Работа с пробелами в scanf и printf
Я хорошо осведомлен о потенциальной вероятности переполнения буфера и таких проблемах безопасности с этими основными/старыми функциями, но это строго для учебных целей, поэтому мне нужно придерживаться их.
Моя программа выглядит следующим образом:
#include <stdio.h>
#include <conio.h>
int main(void)
{
char name[30];
printf("Type your name\n");
scanf("%10[0-9a-zA-Z]", name);
printf("%s\n", name);
return 0;
}
и после компиляции может читать в строке с пробелами, но я могу напечатать только первый фрагмент текста:
C:\Users\hackr>g++ -o whitespace.exe whitespace.c
C:\Users\hackr>whitespace.exe
Type your name
John Doe
John
C:\Users\hackr>
Спасибо! Это работает для меня. –