Главная /
Программирование на языке C в Microsoft Visual Studio 2010 /
Функция xgets() в упрощенном виде демонстрирует работу стандартной функции gets(): char *xgets(char *s) { char ch, *p; int t; p = s; for(t=0; t<80; ++t){ ch = getchar(); switch(ch) { case '\n': s[t] = '\0'; return p; case '\b': if(t>0) t--; break; d
Функция xgets()
в упрощенном виде демонстрирует работу стандартной функции gets()
:
char *xgets(char *s)
{
char ch, *p;
int t;
p = s;
for(t=0; t<80; ++t){
ch = getchar();
switch(ch) {
case '\n':
s[t] = '\0';
return p;
case '\b':
if(t>0) t--;
break;
default:
s[t] = ch;
}
}
s[79] = '\0';
return p;
}
Каким образом можно вызвать эту функцию?
вопрос
Правильный ответ:
Сложность вопроса
90
Сложность курса: Программирование на языке C в Microsoft Visual Studio 2010
62
Оценить вопрос
Комментарии:
Аноним
Благодарю за решебник по интуит.
21 фев 2020
Аноним
Благодарю за тесты по интуиту.
06 апр 2019
Другие ответы на вопросы из темы программирование интуит.
- # При каком способе открытия файла файл лога, содержащий описание всех действий, выполненных в программе не будет создан(при условии, что программа запускается не более одного раза в минуту)? #include <stdio.h> #include <math.h> #include <time.h> #include <string.h> void AddToLog(FILE*, char*); char* GenerateFileName(); int main (void) { FILE *fp; char *strFile, strFn[30] = ""; double (*pFunc) (double); int c = 1; double y; strFile = GenerateFileName(); strcpy(strFn, strFile); <Открытие файла> while(1) { printf("Выберите функцию (0-выход): 1-sqrt, 2-sin, 3-tan\n"); scanf("%d", &c); switch(c) { case 1: pFunc = sqrt; AddToLog(fp, "Пользователь выбрал функцию 1 (вычисление квадратного корня)\n"); break; case 2: pFunc = sin; AddToLog(fp, "Пользователь выбрал функцию 2 (вычисление синуса)\n"); break; case 3: pFunc = tan; AddToLog(fp, "Пользователь выбрал функцию 3 (вычисление тангенса)\n"); break; case 0: AddToLog(fp, "Пользователь завершил выбор функции\n\n"); printf("Лог сохранен в файл %s\n", strFn); return; default: AddToLog(fp, "Пользователь задал неверный номер функции\n\n"); continue; } y = pFunc(1.1); AddToLog(fp, "Вычислено значение выбранной функции\n"); printf("f(1.1) = %.2f\n", y); AddToLog(fp, "Результат вычисления выведен на экран\n"); } if (fp != NULL) fclose(fp); return 0; } void AddToLog(FILE *fp, char *str) { if (fp != NULL) fputs(str, fp); } char* GenerateFileName() { char strTime[10] = ""; char strDate[10] = ""; char strFile[30] = "g:\\log_"; char *token; _strdate(strDate); _strtime(strTime); token = strtok(strDate, "/"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,"_",1); token = strtok(strTime, ":"); while( token != NULL ) { strncat(strFile,token,2); token = strtok( NULL, "/" ); } strncat(strFile,".txt",4); }
- # Значение какой переменной будет наибольшим? a = 6 & 5; b = 6 | 5; c = 6 ^ 5;
- # Какие функции могут использоваться функциями из других файлов? extern int x, y; extern char ch; static void func1(void) { y = 100; } int func2(int a) { int b; b = a; return b; } extern void func2(void) { x = y/10; ch = 'R'; }
- # Что произойдет при выполнении программы? int summa(int N, int a[6]); int main() { int i,n; int a[6] = {8, 65, 10, 2, 4, 1}; n = sizeof(a)/sizeof(a[0]); printf("Сумма: %d", summa(n-1, a)); } int summa(int N, int a[6]) { return a[N]+summa(N-1, a); }
- # Приведенная программа копирует строку а в строку b и выводит обе строки на экран: #include <stdio.h> #include <conio.h> int main() { int i; char a[10] = "Test", b[10] = ""; char *pa = a; char *pb = b; for (i=0; i<strlen(a); i++) *pb++ = *pa++; printf("a = %s\n", a); printf("b = %s\n", b); return 0; } Какая программа аналогична приведенной?