Магия заключается в ключевом слове static
, которое сохраняет содержимое строки памяти даже после завершения функции. (Вы можете рассматривать это как расширение области действия переменной.)
Этот код каждый раз принимает один символ, затем объединяет их в строку и сохраняет в файл:
#include <stdio.h>
#include <conio.h>
char* strbsmallah ()
{
static char input[50];
char position =0, letter;
scanf("%c",&letter);
while (letter != '~') { // press '~' to end your text
input [position]=letter;
++position;
scanf("%c",&letter);
}
input[position]='\0';
char *y;
y = (char*) &input;
//printf("%s\n ",y);
return y;
}
int main() {
printf("\n");
FILE *fp;
fp = fopen("bsmallah.txt", "w+");
fprintf(fp, strbsmallah());
while (!_kbhit());
return 0;
}