Главная /
Программирование на языке 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;
}
Каким образом можно вызвать эту функцию?
вопрос
Правильный ответ:
Сложность вопроса
82
Сложность курса: Программирование на языке C в Microsoft Visual Studio 2010
62
Оценить вопрос
Комментарии:
Аноним
Зачёт прошёл. Мчусь в клуб отмечать отлично в зачётке по интуит
20 май 2018
Другие ответы на вопросы из темы программирование интуит.
- # Что произойдет при двух запусках программы в течение одной минуты? #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); if( (fp = fopen(strFn, "a+")) == NULL ) printf( "Problem opening the file\n" ); 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); }
- # Что будет выведено на экран в результате выполнения приведенной программы? int main(void) { union pw { int i; double d; char ch[2]; } pw = {"y"}; printf("pw.d = %.2f", pw.d); return 0; }
- # Какая ошибка содержится в приведеном фрагменте кода? int min(int, int); int t; int main(void) { register int x=-5, y=5, m; int *p; p = &x; m = min(x,y); printf("min = %d\n", m); return 0; } int min(register int a, register int b) { int m = (a<b) ? a : b; return m; }
- # В приведенном фрагменте кода используется константный указатель: int lec = 7, qst = 11; int *const plec = &lec; int *pqst; pqst = &qst; (*plec)++; printf("Number of the next lection is %d\n", lec ); Какая ошибка содержится в данном коде?
- # Необходимо написать программу заполнения одномерного символьного массива заданным числом (вводимым с клавиатуры) символов с добавлением символа восклицательного знака "!" в конце массива символов. При выполнении какой программы не возникнет ошибки в случае, если пользователь задаст размерность n символьного массива равной 4 и строку "test"?