Читайте также:
|
|
Функция fgets применяется для чтения строки из потока. Считывание происходит до тех пор пока не будет достигнут конец строки (hex:0D0A, эквивалентны в листингах \n) или длина строки, в которую происходит считывание. Предположим, у нас есть файл some_file.txt с текстом
палиндромы А в Енисее - синева. А лама мала. А лис, он умен - крыса сыр к нему носила. (И. Бабицкий)#include <stdio.h>#include <string.h> int main (int argc, char* argv[]) /* argc хранит количество параметров, а argv[] указатели на эти параметры. Например, если мы запустим исполняемый файл "fgets_example param1 param2", то argc будет равно 3, а argv[] = {"fgets_example", "param1", "param2"}*/{ FILE *file; char *fname = "some_file.txt"; char result_sting[20]; //Строка в 20 символов file = fopen(fname,"r"); if(file == 0) { printf("не могу открыть файл '%s'",fname); return 0; } int i=0; char *real_tail; while(fgets(result_sting,sizeof(result_sting),file)) { real_tail=""; printf("Строка %d:Длина строки - %d:",i++,strlen(result_sting)); if(result_sting[strlen(result_sting)-1] == '\n')//проверяем является ли последний элемент в строке символом ее окончания { real_tail="\\n"; result_sting[strlen(result_sting)-1]='\0'; };// эта часть кода добавлена лишь для отображения символа конца строки в консоль без перевода на новую строку printf("%s%s\n",result_sting,real_tail); } fclose(file); return 0;}24 форматированный ввод –вывод
Функции форматированного ввода и вывода в си
Функции форматированного ввода и вывода описаны в библиотеке stdio.h:
scanf – функция форматированного ввода;
printf – функция форматированного вывода
Функция scanf имеет следующий заголовок:
int scanf(const char * restrict format [,addresses,…]);
Пример ввода двух переменных переменные целого типа и переменной вещественного типа:
int a,b;
double x;
…
scanf("%d %d %lf”,&a,&b,&x);
Спецификатор типа
Сочетание %d или любое другое называется спецификатором типа. В общем случае он имеет следующий формат:
% [*] [WIDTH] [hh|h|l|ll|L] символ_типа
* – указывает запрещенные для ввода символы.
WIDTH – задает максимальную длину поля ввода.
Преобразователи типа:
hh - преобразование целочисленных типов к типам char или unsigned char.
h - преобразование целочисленных типов к типам short int или unsigned short int.
l - преобразование к типу long int всех целочисленных типов и к типу double всех вещественных типов.
ll - преобразование целочисленных типов к типам long long int или unsigned long long int.
L - преобразование к типу long double всех вещественных типов.
Спецификаторы типа:
d, i – знаковое целое число в десятичной системе
o – знаковое целое число в восьмеричной системе
X, x – знаковое целое число в шестнадцатеричной системе
u – незнаковое целое число в десятичной системе исчисления
f, e и g – вещественное число в десятичной системе исчисления
a - вещественное число в шестнадцатеричной системе исчисления
c – символ
s – строка в СИ
p – указатель
% - ввод символа ‘%’
Функция printf имеет следующий заголовок:
int printf(const char * restrict format [,variables,…]);
Пример вывода двух переменных целого типа и переменной вещественного типа:
int a,b;
double x;
…
printf("%d %d %5.2lf”,a,b,x);
Дата добавления: 2015-12-08; просмотров: 48 | Нарушение авторских прав